我想弄清楚如何捕捉任何方法調用在PHP中的對象。我知道魔術功能__call
,但它只會觸發調用對象上不存在的方法。如何在PHP中捕獲對象的任何方法調用?
例如,我有這樣的事情:
class Foo
{
public function bar()
{
echo 'foobar';
}
public function override($method_name,$method_args)
{
echo 'Calling method ',$method_name,'<br />';
$this->$method_name($method_args); //dirty, but working
}
}
當我這樣做:
$foo = new Foo();
$foo->bar();
我想這樣的輸出:
Calling method bar
foobar
,而不是這一個:
foobar
有沒有辦法如何做到這一點?請幫助:)
感謝隊友,多數民衆贊成正是我需要的:) – Pirozek 2010-07-13 22:32:14
一種情況下,這將無法正常工作,如果你有方法,期望'Foo',例如'someMethod(Foo $ foo)'' – 2017-02-11 00:55:50