我正在研究我继承的遗留代码,我遇到过这段代码.
{第一个条件打开但是从不关闭其他没有打开?它仍然有效吗?为什么它甚至有效?
foreach($bla as $foo) {
if(condition) {
if(condition) {
// Do Something
}else
continue;
}
}
Run Code Online (Sandbox Code Playgroud)我的假设是内在条件将使用其他?但我只是假设因为这个答案:嵌套的if-else行为没有括号我找不到PHP的明确答案
您可以重新编写此代码(使用适当的缩进):
foreach($bla as $foo) { // FOREACH
if(condition) { // IF#1
if(condition) { // IF#2
// Do Something
} else continue; // END IF#2
} // END IF#1
} // END FOREACH
Run Code Online (Sandbox Code Playgroud)
现在回答你的问题:
它是继续在两个条件下还是仅在一个条件下继续?
它continue如果嵌套仅荷兰国际集团if()(IF#2)语句条件评价false.
为什么它甚至有效?
它的工作原理是因为允许语法没有括号用于简单操 参见手册中的示例1.所以嵌套完全由操作使用以下分隔符关闭.if() if()continue;