博客列表 >php函数基础总结

php函数基础总结

余生
余生原创
2020年12月05日 13:02:171049浏览

函数在任何编程语言中都是不可或缺的一类,PHP 的真正威力源自于它的函数,在 PHP 中,提供了超过 1000 个内建的函数。
本文对php函数的基础知识进行总结,文章包含内容如下:
1.自定义函数
2.函数的返回值
3.形参与实参
4.剩余参数
5.引用参数
6.匿名函数
7.函数的命名空间

一、自定义函数

  1. //函数:完成特定功能的代码块
  2. function 函数名称的标识符([参数列表(可选)]){
  3. 函数体
  4. return 返回值(可选)
  5. }
  6. //函数是代码块的复用手段
  7. //自定义函数
  8. function sum($a,$b){
  9. return $a+$b;
  10. }
  11. sum(1,2);

二、函数的返回值
函数没有返回值,返回null
函数只能返回单一的值,返回值的数据类型可以是任意类型
函数遇到return语句,立即结束程序执行,return后的代码不会被执行
函数返回多个值例子:

  1. // 通过字符串的拼接
  2. function admin(){
  3. $status = 1;
  4. $message = '修改成功';
  5. return 'code' . $status .',<span>'. $message .'</span>';
  6. }
  7. echo admin();//code1,修改成功
  8. // 通过数组
  9. function admin1(){
  10. $status = 1;
  11. $message = '修改成功';
  12. return ['status'=> $status,'msg'=>$message];
  13. }
  14. print_r(admin1());//Array ( [status] => 1 [msg] => 修改成功 )
  15. //json
  16. function admin2(){
  17. $status = 1;
  18. $message = '修改成功';
  19. return json_encode(['status'=>$status,'masg'=>$message]);
  20. }
  21. echo admin2(); //{"status":1,"masg":"\u4fee\u6539\u6210\u529f"}
  22. $data = json_decode(admin2(),true);
  23. print_r($data);//Array ( [status] => 1 [masg] => 修改成功 )
  24. // 序列化 serialize
  25. function admin3(){
  26. $status = 1;
  27. $message = '修改成功';
  28. return serialize(['status'=>$status,'msg'=>$message]);
  29. }
  30. echo admin3();//a:2:{s:6:"status";i:1;s:3:"msg";s:12:"修改成功";}
  31. // 反序列化
  32. print_r(unserialize(admin3())['msg']);//修改成功

三、形参与实参

  1. 形式参数
    形式参数就是定义函数时函数名后面括号内的参数列表(简称“形参”),就像它的名字一样,形参本身没有具体的值。因为函数体中需要使用外部传入的参数,为了使参数可以正确地传递进来,就需要通过形式参数与函数体里面的数据进行传递,形式参数如下图所示。
  2. 实际参数
    实际参数就是我们在调用函数时函数名后面括号中的若干个参数(简称“实参”),实参和形参需要按顺序一一对应,它会替换形式参数在函数体中对应的变量值,函数的参数可以是一个具体的值,也可以是一个变量,实际参数如下图所示。

注意:实际参数一定要和形式参数的个数相相同,并且一一对应,不然程序会出错。

四、剩余参数
剩余参数用在参数列表中 收集归纳作用

  1. //function test($a,$b,$c){
  2. // return $a+$b+$c;
  3. //}
  4. //echo test(5,6,7);//18
  5. // 调用参数的数量不固定
  6. //echo test(3,1,4,4,1213);
  7. // 剩余参数用在参数列表中 收集归纳作用
  8. //array_sum() 返回数组中所有值的和
  9. function test(...$args){
  10. return array_sum($args);
  11. }
  12. echo test(3,1,4,4,1213);//1225
  13. //print_r(test(3,1,4,4,1213));
  14. $arr = [3,1,4,4,1213];
  15. $res = test(...$arr);
  16. echo $res;

五、引用参数
php的引用参数(就是在变量或者函数、对象等前面加上&符号)

  1. function ref(&$arg){
  2. return $arg +=20;
  3. }
  4. $val = 20;
  5. echo ref($val);//40
  6. echo $val;//40 把$val的内存储存区块相对地址,导入到函数中,在函数里发生的任何变化都会对父程序造成影响

六、匿名函数/回调函数
回调函数,用于异步编程中函数的参数,异步编程->对函数执行的时间和顺序不可预测,通过事件/回调的方式来唤醒主程序。

官方介绍:匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数 callable参数的值。当然,也有其它应用的情况。

  1. $data = range(1,100);
  2. print_r($data);
  3. echo "<hr>";
  4. $a = array_map(function($item){// $item 临时变量,总是变化的
  5. if($item % 2==0) return $item;
  6. },$data);
  7. print_r($a);
  8. echo "<hr>";
  9. $b = array_filter($a,function($item){
  10. return $item;
  11. });
  12. 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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
灭绝师太2020-12-07 17:50:101楼
我们可以借助call_user_func()函数声明,调用回调函数,与它同义的还有call_user_func_array(),你了解这两个函数的使用吗?