加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – call_user_func_array与call_user_func

发布时间:2020-12-13 13:04:24 所属栏目:PHP教程 来源:网络整理
导读:我今天遇到了一个有趣的问题.我们有一个利用Zend Frameworks缓存功能的应用程序.对此应用程序的请求通常使用以下行调用工厂方法 $result = call_user_func_array(array("myclass","factory"),array($id)); 我们的想法是从我们稍后可以访问的工厂方法返回一个
我今天遇到了一个有趣的问题.我们有一个利用Zend Frameworks缓存功能的应用程序.对此应用程序的请求通常使用以下行调用工厂方法
$result =  call_user_func_array(array("myclass","factory"),array($id));

我们的想法是从我们稍后可以访问的工厂方法返回一个对象.当我们实现缓存功能时,这个调用就好了.没有错误,只是一个白色的屏幕.错误日志中没有任何内容.我们可以在ok之前错误记录行,但是在factory方法中尝试error_log什么都不做.

有趣的是,将线路改为:

$result =  call_user_func(array("myclass",$id);

解决了这个问题.

我们花了几个小时寻找错误报告,并没有提出太多解释这种行为.想什么?

我有这样的问题,当通过PHP命令调用尚未加载的类时,__ autoload没有正确触发.据我所知,除了愚蠢的试验和错误之外没有其他策略,只要尝试在PHP命令为您解决它之前显式调用该类的行.
$dummy = new MyClassName;
call_user_func_array(array('MyClassName','method'),array($id));
unset($dummy);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读