Blogger Information
Blog 4
fans 0
comment 0
visits 2414
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP的函数参数、匿名函数和回调函数
远程
Original
605 people have browsed it

一、函数的参数

  • PHP 中函数的定义
  • 通过在函数定义时的声明,函数可以由任意数目的参数。
  • 传递参数给函数的方式有两种: 按值传递 和 按 引用传递。

/**

  • @param integer $a 按值传递
  • @param integer $b 按引用传递
  • @param integer $c = 3 默认参数
    */
  1. function A(int $a, int &$b, int $c = 3) {
  2. echo $a."<br/>";
  3. echo $b."<br/>";
  4. $b += 1;
  5. echo $c."<br/>";
  6. return $a+$b;
  7. }
  8. $a = 1;
  9. $b = 1;
  10. echo A($a,$b)."<br/>";
  11. echo $b."<br/>";

//输出:
//1 输出$a的值是1
//1 输出$b的值是1
//3 输出$c的默认值是3
//3 求A+B两数之和,$b被额外+1,返回值为3
//2 由于$b 是传值引用,在add函数内被+1,显示2;

二、匿名函数

  • PHP 匿名函数
  • 通是没有一个确定函数名的函数,在PHP中也叫作闭包函数。它的用法,只能被当作变量来使用了。
  • 函数名即使是变量名。
  1. $result=function(int $a,int $b){
  2. return $a+$b;
  3. };
  4. echo $result(1,3)."<br/>";

//输出:
//4

  • 匿名函数使用函数外全局变量
  • 也可以使用引用参数,会修改全局变量值
  1. $total=function(int $d)use($a,$b):string{
  2. return $d+$a+$b;
  3. };
  4. echo $total(3);

//输出:
//6 $a,$b为全局变量,进过A函数运算,为1和2

三、回调函数

*函数作为参数传入进另一个函数中使用;PHP中有许多 “需求参数为函数” 的函数,像array_map,usort,call_user_func_array之类,他们执行传入的函数,然后直接将结果返回主函数

  1. //求0-100之内的偶数
  2. data = range(0, 100);
  3. $arr = array_map(function(int $item){
  4. if($item % 2 === 0)
  5. return $item;
  6. }, $data);
  7. $res = array_filter($arr, function($item){
  8. return $item;
  9. });//过滤值
  10. $res = array_values($res);//重新排序数组
  11. printf('<pre>%s</ pre>', print_r($res,true));

//输出:
// [2] => 2
// [4] => 4
// …
//[100] => 100

Correcting teacher:PHPzPHPz

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
0 comments
Author's latest blog post