在以下位置,我有时会在生产中遇到以下错误:
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级”吗?
我在PHP Fatal error: Cannot break/continue上看到过这篇文章。但没有得到任何帮助。
发布于 2012-08-16 21:50:36
你不能从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.
使用异常-这里有一个漂亮的例子:http://php.net/manual/en/language.exceptions.php
<?php
function inverse($x) {
if (!$x) {
throw new \Exception('Division by zero.');
} else {
return 1/$x;
}
}
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (\Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
发布于 2016-01-15 07:36:49
如果在一个函数中,只需更改break;返回;
发布于 2016-01-27 21:09:56
如果您仍然想脱离if
,可以使用while(true)
例如。
$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++;
}
您还可以使用switch和default。
$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++;
}
https://stackoverflow.com/questions/11988281
复制相似问题