Correction status:Uncorrected
Teacher's comments:
匿名函数:没有函数名称的函数。可以用于赋值给变量,也可以作为函数或者方法的回调使用。匿名函数可以穿参。
闭包:PHP中闭包和匿名函数是一个概念,用于赋值给变量的一个匿名函数,要给闭包传参必须在匿名函数后加上use(),
括号内可以添加变量,如果需要闭包内外部的变量同步,需要在传参变量前加上 & 符。
回调参数:函数中使用方法callback(),函数外部用call_user_func()或call_user_func_array()等方法进行回调并赋值给函数中的参数,括号内第一个参数应为方法名'callback'。
匿名函数举例:(最终网页中会看到输出:hello world)
<?php //匿名函数举例 //将匿名函数用于赋值给变量 $func = function($param){ echo($param); }; //给变量中的匿名函数传参 $func('hello world');
点击 "运行实例" 按钮查看在线实例
闭包举例:
//闭包举例 $name = 'world'; $sayHello = function() use($name){ echo("Hello $name"); };//这里不要忘记结束的;号 //必须函数方式调用,即用(), 输出Hello world $sayHello(); echo '<br>'; //尝试在闭包外部更新闭包内参数的值 $name = 'zj'; //输出 Hello world,结果证实闭包外部不能更改内部参数的值 $sayHello(); echo '<hr>'; //当在use参数的变量前加上&,就可以在闭包外部访问和更改内部参数的值 $name = 'world'; $sayHello = function() use(&$name){ echo("Hello $name"); };//这里不要忘记结束的;号 //必须函数方式调用,即用(), 输出Hello world $sayHello(); echo '<br>'; //尝试在闭包外部更新闭包内参数的值 $name = 'zj'; //输出 Hello zj,结果证实闭包外部可以更改内部参数的值 $sayHello();
点击 "运行实例" 按钮查看在线实例
回调参数举例:
//函数回调 function callback($a, $b) { echo "$a<=>$b.<br/>"; } $func = 'callback'; call_user_func($func, 1, 2); call_user_func_array($func, array(2, 1)); //结果返回 //1<=>2. //2<=>1.
点击 "运行实例" 按钮查看在线实例