返回值
值通过使用可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。
return
<?php
function square($num)
{
return $num * $num;
}
echo square(4); // outputs '16'.
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
返回一个数组以得到多个返回值
<?php
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & :
从函数返回一个引用
<?php
function &returns_reference()
{
return $someref;
}
$newref =& returns_reference();
?>
返回值类型声明
PHP 7 增加了对返回类型声明的支持。 类似于参数类型声明,返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。
<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
以上例程会输出:
Array
(
[0] => 6
[1] => 15
[2] => 24
)
可变函数
PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。
变量函数不能用于语言结构,例如 echo, print, unset(), isset(), empty(), include, require 以及类似的语句。需要使用自己的包装函数来将这些结构用作变量函数。
<?php
class Test
{
public static $actionB = "property B";
public function actionA()
{
echo "method A";
}
public static function actionB()
{
echo "method B";
}
}
function sayHi() {
echo "Hi".PHP_EOL;
}
function sayHello($word = '') {
echo "Hello $word";
}
$func = 'sayHi';
$func();
$func = 'sayHello';
$func('World');
$func = 'actionA';
(new Test())->$func();
echo Test::$actionB;
$actionB = 'actionB';
Test::$actionB();
结果输出
Hi
Hello Worldmethod Aproperty Bmethod B
从结果可以看出
- 可以用可变函数的语法来调用一个对象方法和静态方法。
- 静态方法调用优先级高于属性调用
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)