也许奇怪的问题,但是...我有一个神奇的__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 {
// ????
}
}
Run Code Online (Sandbox Code Playgroud)
但是在else阻止怎么办?我可以模拟未定义的方法错误吗?或抛出什么异常是正确的?
hai*_*770 24
您可以使用trigger_error以下方法手动触发PHP错误
trigger_error('Call to undefined method '.__CLASS__.'::'.$name.'()', E_USER_ERROR);
Run Code Online (Sandbox Code Playgroud)
见http://php.net/manual/en/function.trigger-error.php
| 归档时间: |
|
| 查看次数: |
2992 次 |
| 最近记录: |