Blogger Information
Blog 14
fans 0
comment 3
visits 17544
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php函数基础总结
余生
Original
1044 people have browsed it

函数在任何编程语言中都是不可或缺的一类,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

Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
灭绝师太 2020-12-07 17:50:10
我们可以借助call_user_func()函数声明,调用回调函数,与它同义的还有call_user_func_array(),你了解这两个函数的使用吗?
1 floor
Author's latest blog post