繁体   English   中英

PHP最佳实践:使用混合返回类型

[英]PHP Best Practice: Using Mixed return types

我理解这个主题在这里简要介绍了,但我希望了解在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
    }

我认为上面提到的用例对于多种返回类型来说是一种甜蜜点。 在任何一种情况下,如果有人提供了一套关于如何确定是否使用此功能的一般指南,我将不胜感激。

谢谢!

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

array()

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

不过,从个人经验来看,我会说,无论什么时候你可以减轻错误的可能性,你都应该这样做。 意思是,如果函数的预期返回值是数组,则应该返回空数组而不是布尔值(false)。 这样,即使有人没有阅读你的文档,最糟糕的情况是,当他们试图遍历数组时,没有任何反应,脚本继续。 如果您无法预见它会导致任何问题,我强烈建议您这样做,而不是简单地返回false。 我甚至无法计算当我返回false而不是一个结果数组(如果查询失败)时,我听过“你的数据库类被破坏了多少次”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM