Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';无法中断/继续1级';是PHP的吗?_Php_If Statement_Fatal Error - Fatal编程技术网

为什么';无法中断/继续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++;
}