也许奇怪的问题,但...... 我有一个魔术__call方法,它返回某些类的实例,或者,如果没有这样的类,则在底层对象中调用相同的方法。
public function __call($name, $arguments)
{
$class = 'My\\Namespace\\' . $name;
if (class_exists($class, true)) {
$reflect = new \ReflectionClass($class);
return $reflect->newInstanceArgs($arguments);
} elseif (is_callable([$this->connector, $name])) {
return call_user_func_array([&$this->connector, $name], $arguments);
} else {
// ????
}
}
但是在else阻止怎么办?我可以模拟未定义的方法错误吗?或抛出什么异常是正确的?
答案 0 :(得分:24)
您可以使用trigger_error
手动触发PHP错误:
trigger_error('Call to undefined method '.__CLASS__.'::'.$name.'()', E_USER_ERROR);