抛出错误而不是检查是否设置了变量会造成很大的性能损失。
例如。尝试一下]]
public function getProperty(): int { try { return $this->getDetail('some-detail'); } catch (Exception $e) { return 0; } }
或带有isset
public function getProperty(): int
{
return isset($this->getDetail('some-detail')) ? $this->getDetail('some-detail') ? 0;
// or even $this->getDetail('some-detail') ?? 0; in php7
}
抛出错误而不是检查是否设置了变量会造成很大的性能损失。代码如下。使用try catch公共函数getProperty():int {try {...
这两个选项实际上都不会以预期的方式工作(我假设是在未正确设置值的情况下发送默认值)。
如果程序的逻辑旨在确保该变量必须存在,并且没有该变量,则程序无法进一步执行,因此抛出异常而不是检查变量是否存在是有意义的。或者,高于调用堆栈的级别,必须返回异常,以便事件能够正确处理。例如,如果我们想通知用户有关问题。无论如何,这都是架构问题。