• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP如何使用Callback/Callable类型

PHP如何使用Callback/Callable类型

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP使用Callback,Callable类型等相关知识,希望对您有所帮助

本篇文章给大家介绍一下PHP使用Callback/Callable类型的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。


PHP如何使用Callback/Callable类型


PHP Callback/Callable 类型使用

测试代码

<?php /** * Class ParentCallback */class ParentCallback{    /**     * @param  int  $a     * @param  int  $b     * @param  int  $c     *     * @return int     */    public static function parentSum(int $a, int $b, int $c)    {        return $a + $b + $c;    }     /**     * @param  int  $a     * @param  int  $b     * @param  int  $c     *     * @return float|int     */    public function parentMultiply(int $a, int $b, int $c)    {        return $a * $b * $c;    }} /** * Class Callback */class Callback extends ParentCallback{     /**     * @param  int  $a     * @param  int  $b     *     * @return int     */    public static function sum(int $a, int $b)    {        return $a + $b;    }     /**     * @param  int  $a     * @param  int  $b     *     * @return float|int     */    public function multiply(int $a, int $b)    {        return $a * $b;    }} /** * Class Invoke */class Invoke{     /**     * @param  int  $a     * @param  int  $b     *     * @return float|int     */    public function __invoke(int $a, int $b)    {        return $a / $b;    }} /** * @param  int  $a * @param  int  $b * * @return int */function sum(int $a, int $b){    return $a + $b;} /** * @param $callback * @param  mixed  ...$parameter * * @return mixed */function do_something(callable $callback, ...$parameter){    return call_user_func($callback, ...$parameter);}


测试示例

// 闭包$ret = do_something(function ($a, $b){    return $a - $b;}, 5, 6);printf("闭包测试示例: %s\n", $ret); // 函数$ret = do_something('sum', 5, 6);printf("函数测试示例: %s\n", $ret); // 静态方法$ret = do_something([Callback::class, 'sum'], 5, 6);printf("静态方法示例: %s\n", $ret); $ret = do_something('\Callback::sum', 5, 6);printf("静态方法示例: %s\n", $ret); $ret = do_something([Callback::class, 'self::parentSum'], 5, 6, 7);printf("静态方法示例: %s\n", $ret); $ret = do_something([Callback::class, 'parentSum'], 5, 6, 7);printf("静态方法示例: %s\n", $ret); $ret = do_something([Callback::class, 'parent::parentSum'], 5, 6, 7);printf("静态方法示例: %s\n", $ret); // 方法$callback = new Callback;$ret = do_something([$callback, 'multiply'], 5, 6);printf("普通方法示例: %s\n", $ret); // invoke$invoke = new Invoke;$ret = do_something($invoke, 5, 6);printf("对象 invoke 示例: %s\n", $ret);


测试结果

闭包测试示例: -1函数测试示例: 11静态方法示例: 11静态方法示例: 11静态方法示例: 18静态方法示例: 18静态方法示例: 18普通方法示例: 30对象 invoke 示例: 0.83333333333333


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP如何使用Callback/Callable类型

相关文章

  • CentOS7如何使用yum安装PHP7.3
  • Js实现动态的仿百度“元宵节汤圆”特效
  • PHP如何使用日期时间类Carbon
  • Photoshop给外景草地女孩添加柔美逆光效果
  • WordPress引入Dplayer并使用简码
  • 纯CSS巧妙的实现带圆角的三角形
  • Photoshop从零开始设计漂亮的网页模板
  • dedecms修改摘要、标题、缩略图等字数和大小限制
  • 分享thinkphp withCredentials跨域问题解决思路
  • 使用bootstrap怎么实现分页

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • DedeCMS输入Tags标签全角逗号自动变半角的方法
    • PHP危险函数禁用深入详解
    • Photoshop制作超酷现代战争按钮教程
    • #1045 无法登录 MySQL 服务器的解决方法
    • 织梦DedeCMS V5.7前台搜索打开慢的原因及解决方法
    • 怎么利用Node.js进行html页面跳转
    • jQuery怎么实现全选效果
    • MySQL中key 、primary key 、unique key 与index区别详解
    • 宝塔面板"Service Unavailable"503的问题怎么解决
    • Dedecms文章审核后给会员增加积分或者金币的办法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有