使用if ... else ...或者只是...来确定返回的内容

时间:2010-06-12 21:16:46

标签: php if-statement

哪个更好?

function test($val = 'a') {
    if($val == 'a') {
        return true;
    }
    return false;
}

function test($val = 'a') {
    if($val == 'a') {
        return true;
    } else {
        return false;
    }
}

实际上,他们做同样的事情。如果$val不是'a',则该函数返回false。只是个人偏好?

9 个答案:

答案 0 :(得分:22)

他们是一样的。但是,对于这种情况,我更喜欢:

function test($val = 'a') {
    return ($val == 'a');
}

答案 1 :(得分:9)

除此之外,为了清晰起见,我更喜欢第二种。但是,我其实更喜欢

return ($val == 'a');

答案 2 :(得分:7)

我认为这取决于比较“感觉”对你的影响。如果看起来$ val是“a”是一个特例,我会使用第一个,并且通常函数返回false。我会使用第二个,如果它感觉更像它是50/50的那样。

答案 3 :(得分:3)

在PHP中,如果函数中没有任何操作并且到达结尾,则它将返回false。因此,如果在函数内部不执行任何其他操作,则永远不必返回false。这让我们留下了这个:

function test($val = 'a') {
    if($val == 'a') {
        return true;
    }
}

如果在if,elseif或else语句之后只有一个命令,则不需要大括号(“{”“}”),这使我们最终得到这个:

function test($val = 'a') {
    if($val == 'a') return true;
}

在PHP中,您实际上可以返回一个比较,该比较将在返回之前执行。这是其他一些回答这篇文章的人所说的。这样做会给我们留下这段代码:

function test($val = 'a') {
    return ($val == 'a');
}

如果块“($ val =='a')”为真,则返回True,否则返回false,因为它不是真的。逻辑。

我实际上倾向于使用我提出的第二个约定,只是出于习惯。看到其他人提出的第三个简单之美,我可能会在适用的时候转而使用。

编辑:

如果您想编写非PHP专家更容易理解的代码,可能还有以下其他选择:

function test($val = 'a') {
    if($val == 'a')
        return true;
    else
        return false;
}

我会说在我的第二个例子中描述的情况下不使用大括号会给你更容易阅读的代码,因为如果它们不包含多行,那么大括号往往会使你的代码变得混乱。 / p>

答案 4 :(得分:2)

我真的相信这是你试图传达代码的意图。如果你看一下:

function test($val = 'a') {
    if($val !== 'a') {
        return false;
    }
    return true;
}

您可以看到它与您的示例完全相同,但它有不同的意图。对于这个例子,有没有任何意义:

function test($val = 'a') {
    if($val !== 'a') {
        return false;
    }
    else {
        return true;
    }
}

我认为@Ned拥有它,因为他试图传达if操作的意图。

答案 5 :(得分:1)

如果你没有回来boolean,我会选择第一张表格。在这种情况下,我只会这样做:

return ($val == 'a');

正如其他人所建议的那样。

答案 6 :(得分:0)

我坚持使用第一个,代码越简单(并且易于阅读)越好。

答案 7 :(得分:0)

在阅读第二个代码块时。当val不等于'a'时,你很容易理解它返回false。

但是在第一个代码块中,当它返回false时有点难以理解。在这个例子中并没有那么难,但我认为你的if条款不会那么简单。

答案 8 :(得分:0)

而不是:

function test($val = 'a') {
    if($val == 'a') {
        return true;
    } else {
        return false;
    }
}

以下方法更好,else没有更多开销,代码也很短:

function test($val = 'a') {
    if($val == 'a') {
        return true;
    }
    return false;
}

可以做得更短:

function test($val = 'a')
{
    return ($val == 'a');
}