我正在處理的項目包含一些類似於call_user_func(_array)的包裝,它在執行前執行一些檢查。 其中一個檢查是method_exists(如果提供的第一個參數是一個類的實例,第二個參數是方法名) 另一個is_callable。 如果其中一個檢查失敗,該函數將引發異常。PHP __call vs method_exists
我的代碼包含一個包含函數名稱(setFoo,setBar等)的數組以及用於重載(__call)的php magic函數,它處理某些變量(更好的某些數組元素)的設置,替換和刪除操作。
問題: 如果函數未定義,則method_exists將返回false。
如果__call函數能正確處理請求,我是否有機會獲得true?
大的問題,我會玩這個。 –
需要的是另一種「魔法」__canCall或其他東西...... –
is_callable()適用於類的實例。我不明白你爲什麼使用method_exists()。 is_callable()完成一切method_exists()的工作,加上它可以與__call()一起工作。 – dave1010