Som*_*luk 21 php if-statement fatal-error
我有时会在生产中遇到这个错误:
if( true == $objWebsite ) {
$arrobjProperties = (array) $objWebsite->fetchProperties( );
if( false == array_key_exists( $Id, $Properties ) ) {
break;
}
$strBaseName = $strPortalSuffix . '/';
return $strBaseName;
}
$strBaseName = $strSuffix ;
return $strBaseName;
Run Code Online (Sandbox Code Playgroud)
我试图重现这个问题.但没有取得任何进展.$ Id,$收到价值的房产.
有谁知道什么时候'无法打破/继续1级'来自PHP?
我看过这篇帖子PHP Fatal错误:无法中断/继续.但没有得到任何帮助.
Rob*_*bie 32
你不能从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.
Run Code Online (Sandbox Code Playgroud)
使用例外 - 这里有一个很好的例子: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';
?>
Run Code Online (Sandbox Code Playgroud)