博主信息
博文 49
粉丝 1
评论 0
访问量 53457
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
匿名函数、闭包和回调参数的理解。2019年6月12日20点
Nick的博客
原创
1051人浏览过

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


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

运行实例 »

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


批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学