call_user_func_array vs. call_user_func

Spotkałem się dzisiaj z interesującym problemem. Mamy aplikację, która wykorzystuje funkcję buforowania Zend Frameworks. Żądanie skierowane do tej aplikacji zazwyczaj wywołuje metodę fabryczną przy użyciu następującej linii

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

Pomysł polega na zwróceniu obiektu z metody fabrycznej, do której możemy uzyskać dostęp później. Kiedy zaimplementowaliśmy funkcję buforowania, to wywołanie właśnie, no, umiera. Bez błędów, tylko biały ekran. Nic w dzienniku błędów. Możemy błędnie zalogować linię przed ok, ale próba wpisania błędu w metodzie fabrycznej nic nie robi.

Co ciekawe, zmieniając linię na:

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

rozwiązuje problem.

Spędziliśmy kilka godzin rozglądając się za raportami o błędach i nie wymyśliliśmy wiele, aby wyjaśnić to zachowanie. Myśli ktoś?

questionAnswers(3)

yourAnswerToTheQuestion