gpt4 book ai didi

php - 如何在 __call 中模拟不存在的方法错误?

转载 作者:IT王子 更新时间:2023-10-29 01:22:18 24 4
gpt4 key购买 nike

也许是个奇怪的问题,但是...我有一个神奇的 __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 block 中做什么呢?我可以模拟未定义的方法错误吗?或者抛出什么异常是正确的?

最佳答案

您可以使用 trigger_error 手动触发 PHP 错误:

trigger_error('Call to undefined method '.__CLASS__.'::'.$name.'()', E_USER_ERROR);

参见 http://php.net/manual/en/function.trigger-error.php

关于php - 如何在 __call 中模拟不存在的方法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com