0

如果“if”块以“die”命令无条件结束,是否需要“else”块(因为如果语句为真,则php脚本退出,如果为假,则无论如何都会执行else块)?

在这种情况下,我正在使用具有“其他”块的东西,我想知道清理它是否会真正影响任何事情。

4

4 回答 4

4

无论您是否有die()命令,都不需要您使用 else 块。

于 2013-07-02T17:54:02.317 回答
1

考虑以下代码:

if ($condition)
{
    echo ("one");
    die();
}
else
{
    echo ("two");
}

echo ("three");

如果您的条件为真,它将回显“一”。如果您的条件为假,它将回显“twothree”。

代码只有在达到时才会死,如果你的条件是假的,它永远不会进入 If 括号,所以它不会死。

你不需要删除else里面的代码,里面的代码永远不会被执行。是的,代码会在那里,但不执行的代码不会影响性能。

于 2013-07-02T17:57:53.703 回答
1
if ($condition)
{
    echo ("one");
    die();
}
else
{
    echo ("two");
}

应该是

if ($condition)
{
    echo ("one");
    die(); // or return
}
echo ("two");

它更短,更容易在眼睛上做同样的事情。当一个if块是终端diereturn)时,在 else 中没有意义,因为这是正常的代码流。

于 2013-07-02T18:03:50.497 回答
0

添加到迈克的答案,如果你正在做

if ($myVar = 1) {
 // do something
 die();
}
if($myVar = 2){
 // do something
 die();
}

做一个开关可能会更好:

$destination = "Tokyo";
echo "Traveling to $destination<br />";
switch ($destination){
    case "Las Vegas":
        echo "Bring an extra $500";
        break;
    case "Amsterdam":
        echo "Bring an open mind";
        break;  
    case "Egypt":
        echo "Bring 15 bottles of SPF 50 Sunscreen";
        break;  
    case "Tokyo":
        echo "Bring lots of money";
        break;
    case "Caribbean Islands":
        echo "Bring a swimsuit";
        break;  
}

从蒂扎格偷来的

在迈克的回答之后写的

于 2013-07-02T18:00:56.900 回答