Я пытаюсь сделать какой-то обработчик ошибок в одном из моих классов.
Поэтому у моего класса есть переменная $error
. Если это правда, он должен напечатать сообщение.
Эта процедура должна выполняться каждый раз перед вызовом функции этого класса
Я попробовал подход магический метод __call () , упомянутый в этом ответе: SO Ответ
К сожалению, это не работает.
class XXX extends YYY{
public $error;
public $var;
function __construct($var)
{
$this->var = $var;
$this->error = true; //test the error process
}
private function before(){
if($this->error)
{
echo "something went wrong"; die;
}
}
private function test(){
echo "test", PHP_EOL;
}
public function __call($method,$arguments) {
if(method_exists($this, $method)) {
$this->before();
return call_user_func_array(array($this,$method),$arguments);
}
}
}
Когда я звоню:
$a = new XXX($var);
$a->test();
Вывод по-прежнему:
/*
* Output:
* test
*/
Любые идеи будут очень признательны.
Спасибо