返回PHP函数的值和异常

时间:2010-06-26 00:59:13

标签: php exception

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

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

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

3 个答案:

答案 0 :(得分:3)

是的,我同意这没有多大意义。信号错误条件通过返回值或异常。如果返回值始终为true(如果出现异常错误),您也可能不返回任何内容(在PHP中等同于返回NULL)。

答案 1 :(得分:2)

看起来纯粹风格。我同意你的看法,返回true或false会更加一致,如果false是意外的或不可接受的,调用代码应抛出异常。

我不认为PHP社区已经完全制定了此类行为的约定,所以我不会说它是常见的还是不常见的。这样的系统有一百种不同的方式是用PHP设计的。

答案 2 :(得分:1)

大多数情况下,当您看到PHP代码时,它将完全是关于编码它的人及其特定风格。

我没有看到代码片段的不一致之处。例外是处理大多数语言错误的适当方法。他可以省略return语句,但我知道很多人觉得函数应该总是返回一个值。