PHP Callable强制指定回调类型的方法

 更新时间:2016年08月30日 16:31:00   作者:傲雪星枫  
这篇文章主要介绍了PHP Callable强制指定回调类型的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

如果一个方法需要接受一个回调方法作为参数,我们可以这样写

<?php
function dosth($callback){
call_user_func($callback);
}
function callback(){
echo 'do sth callback';
}
dosth('callback');
?>

输出:

do sth callback

但我们不能确定回调方法是否可以调用,因此需要做很多额外的工作去检查这个回调方法是否可以调用。

有什么更好的方法可以判断回调方法是否可调用?
我们可以使用callable来强制指定参数为回调类型,这样可以保证回调方法必须是可以调用的。

例如,回调方法为一个不存在的方法

<?php
function dosth(callable $callback){
call_user_func($callback);
}
dosth('abc');
?>

执行后,提示错误:TypeError: Argument 1 passed to dosth() must be callable
程序并不能执行到dosth内部的处理,从参数类型处就已经做了检查处理,起到保护作用。

而如果把callable去掉

<?php
function dosth($callback){
call_user_func($callback);
}
dosth('abc');
?>

执行后,提示警告:Warning: call_user_func() expects parameter 1 to be a valid callback, function ‘abc' not found or invalid function name

程序能执行到dosth内部的处理,这样就需要做很多额外的工作去检查这个回调方法是否可以调用。

因此,如果方法的参数是回调方法,都应加上callable强制指定为回调类型,这样可以减少调用的错误和提高程序的质量。

以上所述是小编给大家介绍的PHP Callable强制指定回调类型的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Zend Framework教程之路由功能Zend_Controller_Router详解

    Zend Framework教程之路由功能Zend_Controller_Router详解

    这篇文章主要介绍了Zend Framework教程之路由功能Zend_Controller_Router,详细分析了路由功能Zend_Controller_Router的原理,使用技巧与相关注意事项,需要的朋友可以参考下
    2016-03-03
  • php jsonp单引号转义

    php jsonp单引号转义

    JSONP(JSON with Padding)是一个非官方的协议,他的实现方式大致就是:让客户端决定要回调的Javascript函数名,在第三方服务端将 JSON 数据拼装到回调函数名中,返回的就是参数为JSON数据的函数调用脚本,浏览器加载脚本并执行达到获取第三方数据的目的。
    2014-11-11
  • PHP实现添加购物车功能

    PHP实现添加购物车功能

    本文给大家分享php实现添加购物车功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下
    2017-03-03
  • 一个可分页的基于文本的PHP留言板源码

    一个可分页的基于文本的PHP留言板源码

    一个可分页的基于文本的PHP留言板源码...
    2007-03-03
  • ThinkPHP采用<volist>实现三级循环代码实例

    ThinkPHP采用<volist>实现三级循环代码实例

    这篇文章主要介绍了ThinkPHP采用<volist>实现三级循环代码实例,通过实例加深读者对<volist>标签用法的认识,需要的朋友可以参考下
    2014-07-07
  • PHP 7.0.2 正式版发布

    PHP 7.0.2 正式版发布

    七年以来,PHP一直是第四大最流行的编程语言,驱动全球超过2亿多个网站,全球超过81.7%的公共网站在服务器端采用PHP。PHP在这个星期有了自2004年以来最大的飞跃,因为PHP 7已经发布
    2016-01-01
  • php读取本地json文件的实例

    php读取本地json文件的实例

    下面小编就为大家分享一篇php读取本地json文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • PHP array_reduce()函数的应用解析

    PHP array_reduce()函数的应用解析

    这篇文章主要介绍了PHP array_reduce()的应用,本文通过代码举例给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • ThinkPHP的常用配置选项汇总

    ThinkPHP的常用配置选项汇总

    这篇文章主要介绍了ThinkPHP的常用配置选项,详细汇总了ThinkPHP配置文件中经常用到的配置项极其具体含义与作用,需要的朋友可以参考下
    2016-03-03
  • PHP多线程模拟实现秒杀抢单

    PHP多线程模拟实现秒杀抢单

    这篇文章主要为大家详细介绍了PHP多线程模拟实现秒杀抢单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论