• 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类型

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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类型

相关文章

  • 2022-04-29在CSS中怎么给按钮添加背景图片(详解及实例)
  • 2022-04-29PhotoShop绘制反光水晶玻璃球按钮教程
  • 2022-04-29为网站选择一个适当的DMOZ目录
  • 2022-04-29Wordpress固定链接怎么设置伪静态
  • 2022-04-29宝塔面板7.X高级破解版代码
  • 2022-04-29vue.js如何实现可拖拽菜单
  • 2022-04-29PhotoShop制作逼真的皱褶纸张文字效果教程
  • 2022-04-29JavaScript中如何判断函数、变量是否存在
  • 2022-04-29WordPress纯代码实现前端页面HTML完美压缩
  • 2022-04-29AI打造漂亮文字效果

文章分类

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

最近更新的内容

    • 如何解决php md5生成16位出现乱码问题
    • PHP实现搜索联想功能(基于字典树算法)
    • 搜索引擎营销中作弊的方式—链接作弊
    • 33个非常实用的JavaScript一行代码,建议收藏!
    • Photoshop打造漂亮的钻石艺术字体排字教程
    • 在javascript中,NaN是什么类型?
    • 如何利用百度外链工具建立有效外链
    • Photoshop鼠绘质感霸天虎机器人界面
    • 详解vue中watch如何使用?watch用法介绍
    • Photoshop设计发光生锈的艺术字教程

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

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