批改状态:未批改
老师批语:
函数定义function 函数名(参数1,参数2,…){//函数体//return}返回值PHP 中提供了 return 语句来返回函数的运行结果,其语法格式如下: return 返回值; 可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。返回单个值function square($num){return $num * 2;}echo square(2),'<br>'; //输出 4.函数不能返回多个值,但可以通过返回一个数组来得到类似的效果// 返回数组function numbers(){return array(1, 2, 3);}var_dump(numbers()); //输出 array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }.返回json字符串// 返回json字符串function jsons(){return json_encode(array('code'=>1,'msg'=>'登陆成功'),JSON_UNESCAPED_UNICODE);}var_dump(jsons()); //输出 string(31) "{"code":1,"msg":"登陆成功"}".返回序列化function selizes(){return serialize(array('code'=>1,'msg'=>'登陆成功'));}var_dump(selizes()); //输出 string(51) "a:2:{s:4:"code";i:1;s:3:"msg";s:12:"登陆成功";}".返回函数function funs(){return function (){};}var_dump(funs()); //输出 object(Closure)#1 (0) { }.参数函数的参数有形式参数和实际参数1、函数的参数默认是值传递2、如果要传递地址,在参数前面加&3、如果是地址传递,不能直接写值参数个数不匹配1、实参少于形参(报错)2、实参多于形参,只取前面对应的值3、func_num_args() //获取参数的个数4、func_get_args() //获取参数数组参数默认值1、在定义函数的时候给形参赋值就是参数的默认值2、默认值必须是值,不能用变量代替3、默认值可以使用常量4、有默认值的写在后面,没有默认值的写在前面function sum($a, $b, $c=10){return $a + $b + $c;}echo sum(1,2,20); // 输出 23echo sum(1, 2); //输出 13 c使用了默认值10echo sum(1, 2, 30, 40); //输出 33 不报错定义变长参数...$参数当使用变长参数时,可使用…$arry展开数组function sum(...$numbers) {$acc = 0;foreach ($numbers as $n) {$acc += $n;}return $acc;}echo sum(1, 2, 3, 4); //输出 10参数约束(7.0后)类型约束//约束$name是字符串型,$age是整型function fun(string $name,int $age) {echo "姓名:{$name},年龄:{$age}";}fun('tom',22); //输出姓名:tom,年龄:22返回值约束function fun(int $num1,int $num2):int { //必须返回整型return $num1+$num2;}echo fun(10,20); //输出 302. 回调函数,匿名函数回调函数回调函数就是一个作为函数的参数来传递的函数. 回调函数在主线程执行的过程中,突然跳去执行设置的回调函数,回调函数执行结束后, 再回到主线程处理接下来的流程php提供了两个内置函数call_user_func()和call_user_func_array()提供对回调函数的支持.call_user_func()call_user_func($callback,参数1,参数2,…)的参数个数根据回调函数的参数来确定的。// 自定义一个匿名函数$sum = function ($a, $b) {return $a + $b;};echo call_user_func($sum,2,4); //输出 6call_user_func_array()call_user_func_array ($callback ,$param_arr),它只有两个参数。是以数组的形式接收回调函数的参数// 自定义函数$sum = function (...$arr) {$total = 0;foreach ($arr as $v) {$total += $v;}return $total;};echo call_user_func_array($sum, array(1,2,3,4,5)); //输出 15匿名函数匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数 callable参数的值。// 匿名函数$greet = function($name){printf("Hello %s\r\n", $name);};$greet('World'); //输出 Hello World$greet('PHP'); //输出 Hello PHP匿名函数可以用 use 语言结构从父作用域中继承变量。$play = '吃过了么';$greet = function($name) use ($play){printf("Hello %s,%s\r\n", $name, $play);};echo $greet('张三'); //输出 Hello 张三,吃过了么
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号