今天我遇到了一個有趣的問題。我們有一個利用Zend框架緩存功能的應用程序。給本申請的請求典型地調用使用以下行call_user_func_array與call_user_func
$result = call_user_func_array(array("myclass", "factory"), array($id));
的想法是從我們可以訪問以後工廠方法返回對象的工廠方法。當我們實現一個緩存功能時,這個調用就會死掉。沒有錯誤,只是一個白色的屏幕。錯誤日誌中沒有任何內容。我們可以在確定之前錯誤地記錄下行,但是在factory方法中嘗試error_log什麼也不做。
有趣的是,轉產到:
$result = call_user_func(array("myclass", "factory"), $id);
修復該問題。
我們花了幾個小時尋找錯誤報告,並沒有提出很多解釋這種行爲。想到任何人?
我剛剛在將所有代碼轉換爲使用名稱空間時才注意到此問題。該類很好,我可以實例化它的實例。 但是,當我拿一個實例並嘗試使用_array或者其他方法調用它時,沒有任何反應。代碼繼續,但該方法似乎永遠不會被調用。 – 2010-08-10 14:37:40