源码哥,靠谱的网站源码下载站 帮助 每日签到

源码哥

广告位《资讯详情页横幅-1150*?》

PHP类型:Callback和Callable

  • 发布者:源码哥 时间:2022-09-19 14:30 阅读:175
  • 扫一扫,手机访问
广告位《资讯详情页摘要上方横幅-828*?》
摘要:回调可以用可调用类型声明来表示。call_user_某些函数,如func()或usort(),可以接受用户定义的回调函数作为参数。回调函数不仅是简单的函数,也是包含静态类方法的对象的方法。合格,合格PHP将函数作为字符串传递。您可以使用任何内置或用户定义的函数,除了语言结构,如array()、echo、empty()、eval()、exit()、isset()、list()、print或unset()。实例化对象的方法作为数组传递,该数

回调可以用可调用类型声明来表示。


call_user_某些函数,如func()或usort(),可以接受用户定义的回调函数作为参数。回调函数不仅是简单的函数,也是包含静态类方法的对象的方法。


合格,合格


PHP将函数作为字符串传递。您可以使用任何内置或用户定义的函数,除了语言结构,如array()、echo、empty()、eval()、exit()、isset()、list()、print或unset()。


实例化对象的方法作为数组传递,该数组具有包含对象的索引0和包含方法名称的索引1。可以在同一类中访问保护方法和专用方法。


可以传递静态类方法而不实例化对象。在0中,代替对象传递类名,或传递“ClassName::methodName”。


回调参数不仅可以使用普通的用户定义函数,还可以接受无名函数和阿罗函数。


提示:


在PHP8.1.0中,还可以使用First-class callable语法创建匿名函数。

通常,__实现invoke()的对象可以传递回调参数。

示例1回调函数示例:


<?php 
// 回调函数示范
function my_callback_function() {
    echo 'hello world!';
}
// 回调方法示范
class MyClass {
    static function myCallbackMethod() {
        echo 'Hello World!';
    }
}
// 类型 1:简单的回调
call_user_func('my_callback_function'); 
// 类型 2:静态类方法回调
call_user_func(array('MyClass', 'myCallbackMethod')); 
// 类型 3:对象方法回调
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
// 类型 4:静态类方法回调
call_user_func('MyClass::myCallbackMethod');
// 类型 5:父级静态类回调
class A {
    public static function who() {
        echo "A
";
    }
}
class B extends A {
    public static function who() {
        echo "B
";
    }
}
call_user_func(array('B', 'parent::who')); // A
// 类型 6:实现 __invoke 的对象用于回调
class C {
    public function __invoke($name) {
        echo 'Hello ', $name, "
";
    }
}
$c = new C();
call_user_func($c, 'PHP!');
?>
使用实例#2存储模块的示例:
<?php
// 闭包
$double = function($a) {
    return $a * 2;
};
// 这是数字范围
$numbers = range(1, 5);
// 这里使用闭包作为回调,
// 将范围内的每个元素数值翻倍
$new_numbers = array_map($double, $numbers);
print implode(' ', $new_numbers);
?>

输出以上例程:


2 4 6 8 10


注意:


如果在函数中注册了多个回调内容(call_user_func()或call_user_func_使用array()等),如果在以前的回调中有未捕获的异常,则以后的回调将不再被调用。


性能说明:如果值看起来像静态方法回调,则可调用类型提示(如is_callable())将触发类的自动加载。


在数组表示法(即数组($this,“myfunc”))中指定回调时,如果从类内部调用,则该方法可以是私有的,但如果从外部调用,则会收到警告。


相关连接: 网站源码 企业网站源码

  • 全部评论(0)
上一篇:PHP类型声明
下一篇:PHP空类型:NULL
广告位《资讯详情页最新发布上方横幅-828*?》
最新发布的资讯信息
【网站开发|HTML】html编码设置(2022-10-17 11:26)
【网站开发|HTML】html添加注释的方法(2022-10-17 11:25)
【网站开发|HTML】html元素(2022-10-17 11:23)
【网站开发|HTML】html属性介绍(2022-10-17 11:22)
【网站开发|HTML】html标签说明(2022-10-17 11:21)
【网站开发|HTML】html的基本结构(2022-10-17 11:20)
【行业资讯|】如何学习好网站前端开发?(2022-10-14 14:53)
【网站开发|JavaScript】如何轻松学习JavaScript(2022-10-14 14:26)
【网站开发|node.js】NodeJS Service Docker映像终极优化指南(2022-10-14 14:14)
【网站开发|JavaScript】后端response响应返回图像,前端怎么下载图片?(2022-09-23 10:17)
联系我们
Q Q:472206683
微信:472206683
邮箱:472206683@qq.com
时间:09:00 - 24:00
联系客服
售前咨询 网站搭建 技术支持 联系客服
18639176864
手机版
手机版二维码
扫一扫进手机版
返回顶部