批改状态:合格
老师批语:
<?PHP// 不同的脚本不能有同名函数,同名函数要放在不同命名空间namespace spaceOne {$money = 8000;$pay = 1800;// 定义的函数可在定义语句前面调用echo payment($money, $pay);// 参数加&为引用原变量,运算后值会变function payment(&$money, $pay, $paymentWay = '支付宝'){$money = $money - $pay;return "通过{$paymentWay}支付了{$pay}元,余额{$money}元。<br>";}$pay = 2800;echo payment($money, $pay);$pay = 850;$paymentWay = '微信';echo payment($money, $pay, $paymentWay);}namespace spaceTwo {$state = true;// say(); 函数还没执行定义,在此处调用会出错。if ($state) {function payment(){return '我们在学习PHP。';}}echo payment();}
<?PHP// !函数返回值function arr(){return [3, 6, 9];}[$a, $b, $c] = arr();echo ($a + $b + $c);// !接口开发 函数返回值会转为通用的json格式的数据返回,这样以来就可以和其他的编程语言进行数据交互,例如js与java php pythonfunction login(): string{$loginMsg = ['status' => 1, 'msg' => '登录成功!'];return json_encode($loginMsg, 320);}$lgoinMsg = login();var_dump($lgoinMsg);var_dump(json_decode($lgoinMsg));
<?PHP/**特殊形式的函数* 1.匿名函数(闭包函数)* 2.回调函数* 3.递归函数**/// 匿名函数(闭包函数)$praise = function ($mascot) {return "每个人都喜欢{$mascot}。<br>";};echo $praise('冰敦敦');// 全局变量是指声明在函数外部的变量,在函数内部访问不到。// 局部变量是指声明在函数内部的变量,只能在函数内部被访问到。// 定义全局变量$mascot1 = '冰敦敦';$mascot2 = '雪融融';// 定义函数function praise(){// 下面语句是错误的,无法访问外部变量// return "每个人都喜欢{$mascot}。<br>";// 用global访问global $mascot1;// 用超全局数组$GLOBALS $_GET $_POSTreturn "每个人都喜欢{$mascot1}和{$GLOBALS['mascot2']}。<br>";}echo praise();// 闭包用关键字use使用全局变量$praise = function ($city) use ($mascot1, $mascot2) {return "{$mascot1}和{$mascot2}是{$city}冬奥会的吉祥物。<br>";};echo $praise('北京');// 通过引用传递,闭包可改变变量值$praise = function ($mascot) use (&$mascot1) {$mascot1 = $mascot;};$praise('熊猫');echo $mascot1;
<?PHP// 回调函数// 定义匿名函数,把数组中的偶数筛选出来,组成一个新数组$odd = function (array $arr) {// 遍历数组for ($i = 0; $i < count($arr); $i++) {// 判断为偶数,组成新数组if ($arr[$i] % 2 == 0) {$newArr[] = $arr[$i];}}return $newArr;};$arr = [2, 35, 22, 26, 27, 29, 28, 223, 226, 228, 225, 269, 248, 239, 2310, 2564, 2351, 2258];// 定义函数,求数组中偶数的各// 函数第1个参数为函数,第2个参数为数组function sum(Closure $f, array $arr){return array_sum($f($arr));}echo sum($odd, $arr) . '<br>';// 使用call_user_func()把第一个参数作为回调函数调用,后面是参数echo 'call_user_func函数' . call_user_func('sum', $odd, $arr) . '<br>';// 调用匿名函数var_dump(call_user_func($odd, $arr));
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号