退出功能的标准

时间:2012-06-04 16:45:33

标签: php standards

  

可能重复:
  Why should a function have only one exit-point?

作为一名CS学生,我已经击败了我的脑袋,最后在一个功能中应该只有一个出口点。

例如。这样:

function foo()
{

    //do stuff here

    if($bar)
    {
         $out = FALSE;
    }
    else
    {
         $out = TRUE;
    }
    return $out;
}

function foo()
{

    //do stuff here

    if($bar)
    {
         return FALSE;
    }
    return TRUE;
}

但是我已经看到第二种类型的退出经常在php中的其他人的代码中使用,甚至在某些框架的核心代码中使用(比如我最近使用的Kohana)。 这种退出函数的方法在php标准中是否可以正常使用?

编辑:我可以看到为什么我被告知不要这样做,因为可以更容易地跟踪一个退出点的函数中的一些问题,其他时候我可以看到为什么它应该被允许,因为其他问题更好地解决或在具有多个退出点的函数中进行跟踪。

编辑2:在代码示例中添加了“在这里做点什么”评论以使人们满意

3 个答案:

答案 0 :(得分:2)

我一直使用后一种方法,因为你必须声明$out并且还有一个变量存在。但回想起来,它只是一个布尔 - 它没有造成任何伤害。第一条路线可能看起来更干净,具体取决于您的代码的上下文。

这一切都归结为一致性。只要你有一个系统,确定何时使用路线1或路线2,你就会做得很好。

答案 1 :(得分:2)

这是一个中的六个,或者是另外六个 - 幸福在于一致性。

答案 2 :(得分:2)

我已经看到(好)代码返回值两种方式。如果您正在使用一直使用单向的框架/代码库,我会遵循这一点。否则,请使用您喜欢的东西。 :d