关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
虚拟货币
首页
说说
日常
开发
游戏
资源
虚拟货币
关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
将可能可执行的内容转换成is_callable可识别的callable
开发
·
2017-10-10
·
更新于 2020-06-26
LiesAuer
``` new C2, 'me' => '__invoke'], ]; class C1 {} class C2 { public function __invoke() {} public function aaa() {} } class SC1 { public static function sc11() {} } foreach ($callables as $callable) { var_dump(resolveCallable($callable)); echo "\n"; } /** * 将可能可执行的内容转换成is_callable可识别的callable * 可识别内容: * 任何is_callable()===true的callable * 任意存在且含有__invoke方法的AnyClass::class * * @param string $callable 可能可执行的内容 * @param bool $return_false 当发生无法转换时,是否返回false,默认返回一个空匿名函数 * @return callable | false */ function resolveCallable($callable, $return_false = false) { if (is_callable($callable)) { return $callable; } elseif (is_string($callable) && class_exists($callable)) { return resolveCallable(new $callable, $return_false); } elseif (is_array($callable) && @$callable[1] === '__invoke') { return resolveCallable(@$callable[0], $return_false); } else { return $return_false ? false : function () {}; } } ```
如果您觉得文章或项目对您有帮助,戳我请博主喝一杯咖啡叭!
取消回复
提交评论
瞅一瞅叭
个人接活
扒接口、爬虫、JS逆向、web3量化
域名出售
uterminal.ai
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
最新评论
www: 配置文件填写后,运行exe 显示登录信息,然后就卡住了 ┌─...
从良未遂: 你好,我接入cloudflare后发现修改主题、发表文章、回复评...
colin: 所以用 windows 来开发是原罪
人: 不是怎么意外的连上外网?
志航: 可以试着把文件上传蓝奏云,这么干的样例很多
志航: QQ群加不进去
tinker: 为什么运行一段时间就会停止,重启又恢复!没有报错信息,频道信息和...
关于站长
广东 佛山
liesauer#liesauer.net
LiesAuer
CC BY-NC-SA 4.0
粤ICP备16094588号-1
萌ICP备20245567号
Theme
Jasmine
by
Kent Liao