批改状态:合格
老师批语:
function sum(int $left, int $right) : string{return $left + $right;};
var_dump(sum(1, 2));
// printf:返回 打印printf('<div style="color:red">%s</div>','php中文网');// sprintf:只返回不打印echo sprintf('<div style="color:red">%s</div>','php中文网');// vprintf:打印数组参数function sum1(int $left, int $right) : string{return vprintf("%d + %d = %d", [$left,$right, $left + $right]);}sum1(2,3);// vsprintf:只返回不打印
if (!function_exists('sum2')) {function sum2(int $left, int $right, int $center = 10) : int{return array_sum([$left, $right, $center]);}};// 3.1 参数太少,使用默认参数echo sum2(20,30) . "\n";echo sum2(20,30,5) . "\n";
参数过多或者不确认参数个数,在参数前面加...标识为可变参
function foo($arr, ...$arrs){var_dump($arr, $arrs);}foo(1,2,3,4,5,6);function boo(...$arrs){var_dump(func_get_args());}boo(10,20,33,218,98);
function sum3(int $left, int $right, int $center = 10, $good = 20) : int{return array_sum([$left, $right, $center,$good]);}echo sum3( 1, 2, good:40);

function hoo($a){return $a += 10;}// 值传递$a = 20;echo hoo($a) . "<br />";echo $a . "<br />";// 引用传递$c = 50;$d = &$c;echo $d . "<br />";$c = 60;echo $d . "<br />";$d = 30;echo $c;

// 返回值 return:返回单一值// 返回数组 json字符串function fn1(){// return 1;// return 1 !== 1;return ['admin', 'admin@php.cn'];}// true 1 false ''//echo fn1();list($name, $email) = fn1();echo $name . ' : ' . $email;

// 1. 匿名函数 Closure类$b = 1;$boo = function ($a) use ($b) {echo $a + $b . "<br />";};$boo(3);$boo(6);

箭头函数会自动捕获父作用域遍历进行值拷贝
$x = 1;$fn1 = fn($a, $b) => $a + $b + $x; //省略的时returnecho $fn1(10,20);

<?phpfunction boo(...$args) {return array_sum($args);}boo(15,25,111,289,157);
// 在主进程执行的过程中,突然跳转到预先设置好的函数中区执行的函数// php单线程,同步执行,如果遇到耗时函数会发生阻塞,应该将它改为异步回调执行
require 'test.php';// 传统调用一个命名函数echo boo(15,25,111,289,157) . "<br />";
call_user_func() call_user_func_array()调用回调函数,并把一个数组参数作为回调函数的参数
echo call_user_func('boo',...[15,25,111,289,157]) . "<br />";echo call_user_func_array('boo',[15,25,111,289,157]);
function insert($i){echo "插入数据{$i}<br />";return true;}$arr = range(1,10);function action($arr, $function){foreach ( $arr as $key => $value ) {if($value % 2 == 0){call_user_func($function , $value);}}}action($arr, 'insert');
function action2(array $arr, callable $function){foreach ( $arr as $key => $value ) {if ( $value % 2 == 0 ) {call_user_func($function, $value);}}}$loo = function($i){echo "插入数据{$i}<br />";return true;};action2($arr, $loo);

function demo($a=1){if($a<=5){echo "第{$a}此执行的结果<br />";$a++;demo($a);}}demo();
// 递归函数:具有递归功能的函数// 递归函数是指直接或者间接的调用函数自身的函数

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号