Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 声明每个语句返回false的嵌套if语句_Php - Fatal编程技术网

Php 声明每个语句返回false的嵌套if语句

Php 声明每个语句返回false的嵌套if语句,php,Php,假设我有以下代码: function a() { if ($a) { if ($b) { if ($c) { // do something } return FALSE } return FALSE; } return FALSE; } 在这个例子中,我需要所有的返回错误吗?或者如果我删除了两个内部错误,它会级联到最后

假设我有以下代码:

function a() {
    if ($a) {
        if ($b) {
            if ($c) {
                // do something
            }
            return FALSE
        }
        return FALSE;
    }
    return FALSE;
}
在这个例子中,我需要所有的返回错误吗?或者如果我删除了两个内部错误,它会级联到最后一个吗


谢谢

它将从列表中层叠而下。您不需要每次返回错误呼叫。

它将下降/级联到最后一个

但是您可能还需要
返回true在你的
//做某事
部分,因为
返回false将以其他方式调用

该函数将继续运行,直到发生以下三种情况之一:

  • 执行
    return
    语句
  • 达到函数的关闭
    }
  • 发生未修补的异常或(致命)错误

它将一直持续到,但是,这可能不是您想要的,因为这样的返回将完全结束函数,并且可能会跳过您想要完成的操作。

使用类似于以下内容的简单易懂的表示:

function a() {
    if ($a) {
        if ($b) {
            if ($c) {
                // do something
                return TRUE; // or something other than TRUE
            }
        }
    }
    return FALSE;
}

简短的回答;您可以安全地删除除最后一个之外的所有“return false;”,它仍然可以正常工作

一旦到达if语句的末尾,它将跳出if语句并继续执行前一个代码块(一个代码块由{和}定义)。例如,如果$a为真,但$b为非真,则它将输入$a块,然后跳过$b块,并在其后继续。当$a块结束时,它将返回到上一块。请参见下图:

function a() {
    if ($a) { // $a is true, enters block
        if($b) { // $b is false, skip block
            return true;
        }
        // end of $a-block reached, leave $a-block
    }
    return false; // return false and stop further execution
}
编写上述if语句的更简洁方法可以是:

If ($a && $b)
    return true;
return false;

我希望这不是生产代码。您的最后一个返回语句已超出所有if块。因此,如果您没有在这些块中使用任何返回,那么最后一个肯定会被执行,并且足以使用。但是,您的函数将始终返回false(我想这可能不是我们想要的)。
If ($a && $b)
    return true;
return false;