说我有以下代码:
function a() {
if ($a) {
if ($b) {
if ($c) {
// do something
}
return FALSE
}
return FALSE;
}
return FALSE;
}
在这个例子中,我是否需要所有的返回功能,或者如果我删除两个内部的那些,它是否会级联到最后一个?
由于
答案 0 :(得分:3)
if ($a && $b && $c) {
//do something
return TRUE;
} else {
return FALSE;
}
答案 1 :(得分:0)
它会在列表中向下级联。你不需要每次都返回错误的电话。
答案 2 :(得分:0)
它会下降/级联到最后一个。
但您的return true;
部分可能还需要//do something
,因为return false;
会被调用。
该功能将继续运行,直到发生以下三种情况之一:
return
语句}
答案 3 :(得分:0)
它会继续,但是,这可能不是你想要的,因为这样的回归将完全结束这个功能,可能会跳过你想做的事情。
答案 4 :(得分:0)
使用类似这样的内容可以直观且易于理解:
function a() {
if ($a) {
if ($b) {
if ($c) {
// do something
return TRUE; // or something other than TRUE
}
}
}
return FALSE;
}
答案 5 :(得分:0)
简短回答;你可以安全地删除所有“return false;”除了最后一个,它仍然会起作用。
一旦它到达if语句的末尾,它将跳出它并继续前一个代码块(一个块由{和}定义)。例如,如果$ a为真,但$ b不为,则它将进入$ a-block,然后跳过$ b-block,继续执行。当$ a-block结束时,它将返回上一个块。请参见下图:
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;