博客列表 >匿名函数、闭包和回调参数的理解。2019年6月12日20点

匿名函数、闭包和回调参数的理解。2019年6月12日20点

Nick的博客
Nick的博客原创
2019年06月17日 22:55:30827浏览

匿名函数:没有函数名称的函数。可以用于赋值给变量,也可以作为函数或者方法的回调使用。匿名函数可以穿参。


闭包: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.

运行实例 »

点击 "运行实例" 按钮查看在线实例


上一条:2019.6.17作业下一条:响应式布局
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议