批改状态:合格
老师批语:
函数在任何编程语言中都是不可或缺的一类,PHP 的真正威力源自于它的函数,在 PHP 中,提供了超过 1000 个内建的函数。
本文对php函数的基础知识进行总结,文章包含内容如下:
1.自定义函数
2.函数的返回值
3.形参与实参
4.剩余参数
5.引用参数
6.匿名函数
7.函数的命名空间
一、自定义函数
//函数:完成特定功能的代码块function 函数名称的标识符([参数列表(可选)]){函数体return 返回值(可选)}//函数是代码块的复用手段//自定义函数function sum($a,$b){return $a+$b;}sum(1,2);
二、函数的返回值
函数没有返回值,返回null
函数只能返回单一的值,返回值的数据类型可以是任意类型
函数遇到return语句,立即结束程序执行,return后的代码不会被执行
函数返回多个值例子:
// 通过字符串的拼接function admin(){$status = 1;$message = '修改成功';return 'code' . $status .',<span>'. $message .'</span>';}echo admin();//code1,修改成功// 通过数组function admin1(){$status = 1;$message = '修改成功';return ['status'=> $status,'msg'=>$message];}print_r(admin1());//Array ( [status] => 1 [msg] => 修改成功 )//jsonfunction admin2(){$status = 1;$message = '修改成功';return json_encode(['status'=>$status,'masg'=>$message]);}echo admin2(); //{"status":1,"masg":"\u4fee\u6539\u6210\u529f"}$data = json_decode(admin2(),true);print_r($data);//Array ( [status] => 1 [masg] => 修改成功 )// 序列化 serializefunction admin3(){$status = 1;$message = '修改成功';return serialize(['status'=>$status,'msg'=>$message]);}echo admin3();//a:2:{s:6:"status";i:1;s:3:"msg";s:12:"修改成功";}// 反序列化print_r(unserialize(admin3())['msg']);//修改成功
三、形参与实参


注意:实际参数一定要和形式参数的个数相相同,并且一一对应,不然程序会出错。
四、剩余参数
剩余参数用在参数列表中 收集归纳作用
//function test($a,$b,$c){// return $a+$b+$c;//}//echo test(5,6,7);//18// 调用参数的数量不固定//echo test(3,1,4,4,1213);// 剩余参数用在参数列表中 收集归纳作用//array_sum() 返回数组中所有值的和function test(...$args){return array_sum($args);}echo test(3,1,4,4,1213);//1225//print_r(test(3,1,4,4,1213));$arr = [3,1,4,4,1213];$res = test(...$arr);echo $res;
五、引用参数
php的引用参数(就是在变量或者函数、对象等前面加上&符号)
function ref(&$arg){return $arg +=20;}$val = 20;echo ref($val);//40echo $val;//40 把$val的内存储存区块相对地址,导入到函数中,在函数里发生的任何变化都会对父程序造成影响
六、匿名函数/回调函数
回调函数,用于异步编程中函数的参数,异步编程->对函数执行的时间和顺序不可预测,通过事件/回调的方式来唤醒主程序。
官方介绍:匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数 callable参数的值。当然,也有其它应用的情况。
$data = range(1,100);print_r($data);echo "<hr>";$a = array_map(function($item){// $item 临时变量,总是变化的if($item % 2==0) return $item;},$data);print_r($a);echo "<hr>";$b = array_filter($a,function($item){return $item;});print_r(array_values($b));
1.array_map定义和用法
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
提示:您可以向函数输入一个或者多个数组。
2.array_filter 用回调函数过滤数组中的单元
3.array_values()
定义和用法
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。
提示:被返回的数组将使用数值键,从 0 开始并以 1 递增。
php内置函数入口:
官网 https://www.php.net/manual/zh/functions.internal.php
w3c https://www.w3school.com.cn/php/php_ref_array.asp
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号