PHP 函数的返回值和异常

SHC*_*SHC 5 php exception

我正在阅读一些有关 PHP 的书籍(特别是 Welling 和 Thomson 的“PHP 和 MySQL Web 开发”),而且我也是一名刚毕业的本科生。我有点好奇为什么作者决定选择两种不同的方式来终止一个函数的执行,例如

if (!$result) {
    throw new Exception('Password could not be changed.');
} else {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

对我来说,这似乎有点不一致,返回 false 并让调用者检查被调用者的返回值并处理它会更有意义。PHP 代码像这样常见吗?这是使用异常时预期的样式类型吗?

Art*_*cto 4

是的,我同意这没有多大意义。通过返回值或异常来发出错误条件信号。如果返回值是always true(出错时会引发异常),那么您也可能不返回任何内容(这在PHP中相当于返回NULL)。