5

我知道这里简要介绍了这个主题,但我希望了解在 PHP 中使用多种返回类型的一般注意事项。关于 PHP 的这个特性似乎有不同的看法。

我倾向于同意,正如上面链接的线程中所指出的,对于错误,使用异常可能更合适;但是,如果一个函数返回两种有意义的值呢?例如,假设一个函数返回房子里所有关闭的灯 (:) 是的,我正在努力!)

本质上,这就是我想要传达的:如果一个基本条件没有得到满足,并且我看不到继续计算我的列表的意义,我会返回一个布尔值。否则,请继续这样做:

    public function getLightsThatAreOff($house) 
    {
        // if $house itself does not have any power, return true 
        // else 
              //compile an array of lights that are off and return then
    }

我认为上面提到的用例是多种返回类型的最佳选择。无论哪种情况,如果有人提供一套关于如何确定是否使用此功能的通用指南,我将不胜感激。

谢谢!

4

2 回答 2

9

即使记录良好,混合类型也不好。例如,如果一个方法正在返回一个数组,但没有返回任何内容,那么它应该是一个空数组,而不是 false 或其他任何东西。IE

array()
于 2013-04-30T06:23:02.497 回答
0

这实际上取决于您打算如何使用这些功能。即使您是大型开发团队的一员,只要您有效地记录您的代码,那么您应该能够安全地返回混合类型。如果你自己开发,那真的没关系,只要你知道如何以及在哪里使用你的函数。

不过,根据个人经验,我会说,只要您可以减轻错误的可能性,就应该这样做。意思是,如果函数的预期返回值是一个数组,那么您可能应该返回一个空白数组而不是布尔值 (false)。这样,即使有人没有阅读您的文档,最糟糕的情况是当他们尝试遍历数组时,什么也没有发生,脚本继续执行。如果您无法预见它会导致任何问题,我强烈建议您这样做,而不是简单地返回 false。如果查询失败,当我返回 false 而不是返回结果数组时,我什至无法计算我听到多少次“你的数据库类已损坏”。

于 2013-04-30T05:16:02.203 回答