gpt4 book ai didi

php - call_user_func_array 与 call_user_func

转载 作者:可可西里 更新时间:2023-11-01 12:39:03 24 4
gpt4 key购买 nike

我今天遇到了一个有趣的问题。我们有一个利用 Zend Frameworks 缓存功能的应用程序。对此应用程序的请求通常使用以下行调用工厂方法

$result =  call_user_func_array(array("myclass", "factory"), array($id));

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

有趣的是,将行更改为:

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

解决了这个问题。

我们花了几个小时四处寻找错误报告,但没有想出太多来解释这种行为。任何人的想法?

最佳答案

当通过 PHP 命令调用尚未加载的类时,我遇到过这样的问题,归结为 __autoload 未正确触发。据我所知,除了愚蠢的反复试验之外没有其他策略,只要尝试在 PHP 命令之前显式调用该类的行是否为您解决了它。

$dummy = new MyClassName;
call_user_func_array(array('MyClassName', 'method'), array($id));
unset($dummy);

关于php - call_user_func_array 与 call_user_func,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1120779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com