call_user_func_array против call_user_func

Я столкнулся с интересной проблемой сегодня. У нас есть приложение, которое использует функциональность кэширования Zend Frameworks. Запрос к этому приложению обычно вызывает метод фабрики, используя следующую строку

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

Идея состоит в том, чтобы вернуть объект из фабричного метода, к которому мы можем получить доступ позже. Когда мы реализовали функцию кэширования, этот вызов просто умирает. Никаких ошибок, только белый экран. Ничего в журнале ошибок. Мы можем записать строку ошибки до того, как все будет в порядке, но попытка error_log внутри фабричного метода ничего не даст

Интересно, что изменив строку на:

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

устраняет проблему

Мы потратили несколько часов, просматривая сообщения об ошибках, и не смогли придумать много, чтобы объяснить это поведение. Мысли кто-нибудь?

Ответы на вопрос(3)

Ваш ответ на вопрос