为什么';无法中断/继续1级';是PHP的吗?
我在生产中有时会遇到以下错误:为什么';无法中断/继续1级';是PHP的吗?,php,if-statement,fatal-error,Php,If Statement,Fatal Error,我在生产中有时会遇到以下错误: if( true == $objWebsite ) { $arrobjProperties = (array) $objWebsite->fetchProperties( ); if( false == array_key_exists( $Id, $Properties ) ) { break; } $strBaseName = $strPortalSuffix . '/'; return $strB
if( true == $objWebsite ) {
$arrobjProperties = (array) $objWebsite->fetchProperties( );
if( false == array_key_exists( $Id, $Properties ) ) {
break;
}
$strBaseName = $strPortalSuffix . '/';
return $strBaseName;
}
$strBaseName = $strSuffix ;
return $strBaseName;
我试图重现这个问题。但是没有任何进展$Id,$Properties具有接收到的值
有人知道PHP中何时出现“无法中断/继续1级”吗
我看过这篇文章。但是没有得到任何帮助。您不能“中断”if语句。你只能打破一个循环
如果您想使用它来中断调用函数中的循环,则需要通过返回值或引发异常来处理此问题
返回值方法:
while (MyLoop) {
$strSecureBaseName = mySubFunction();
if ($strSecureBaseName === false) { // Note the triple equals sign.
break;
}
// Use $strSecureBaseName;
}
// Function mySubFunction() returns the name, or false if not found.
使用例外-这里有一个很好的例子:
如果在一个函数中只更改break;返回 如果您仍然想从中断,如果,您可以使用while(true)
前
也可以使用开关和默认值
$count = 0;
if($a==$b){
switch(true){
default:
if($b==$c){
$count = $count + 3;
break; // By this break you will be going out of switch and execute remaining code of $count++.
}
$count = $count + 5; //
}
$count++;
}
你认为break
在这种情况下会有什么表现?周围的代码是什么<代码>中断
仅在循环或开关的上下文中使用。它发生在使用中断或继续时,而不是在循环内。这是我看到此错误的唯一原因。在这种情况下,false
和false
来自array\u key\u exists的false
将松散匹配。当心空头支票@SIGANTEG:这部分属于函数。它在某些条件下工作,但在某些情况下会出现错误。所以我需要修改条件是否正确?为什么返回?如果在之后有0条语句要执行,那么我们可以返回。但是,如果需要执行某些语句,那么我们不应该返回。我同意这种情况。它还取决于代码块试图应用的逻辑。是的,所以不总是回来。
$count = 0;
if($a==$b){
while(true){
if($b==$c){
$count = $count + 3;
break; // By this break you will be going out of while loop and execute remaining code of $count++.
}
$count = $count + 5; //
break;
}
$count++;
}
$count = 0;
if($a==$b){
switch(true){
default:
if($b==$c){
$count = $count + 3;
break; // By this break you will be going out of switch and execute remaining code of $count++.
}
$count = $count + 5; //
}
$count++;
}