退出函数的标准


Standards for exiting a function

可能的重复项:
为什么一个函数应该只有一个出口点?

作为一名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:在代码示例中添加了"在这里做事"注释,让人们开心

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

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

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

我已经看到(好的)代码以两种方式返回值。如果您使用的是始终使用一种方式的框架/代码库,我会遵循。否则,请使用您喜欢使用的内容。:D