inicio - ¿Por qué ''No se puede romper/continuar 1 nivel'' viene en PHP?
inicio y fin en php (3)
Estoy recibiendo a veces este error en la producción en:
if( true == $objWebsite ) {
$arrobjProperties = (array) $objWebsite->fetchProperties( );
if( false == array_key_exists( $Id, $Properties ) ) {
break;
}
$strBaseName = $strPortalSuffix . ''/'';
return $strBaseName;
}
$strBaseName = $strSuffix ;
return $strBaseName;
He intentado reproducir este problema. Pero no consiguiendo ningún progreso. $ Id, $ Propiedades con valor recibido.
¿Alguien sabe cuándo aparece "No se puede romper / continuar 1 nivel" en PHP?
He visto este post Error fatal de PHP: No se puede romper / continuar . Pero no consiguió ninguna ayuda.
No se puede "romper" de una sentencia if. Sólo se puede romper de un bucle.
Si desea usarlo para interrumpir un ciclo en una función de llamada, debe manejar esto por valor de retorno, o lanzar una excepción.
Método de valor de retorno:
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.
Usando excepciones - hermoso ejemplo aquí: 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'';
?>
Si dentro de una función solo cambia break; regresar;
Si todavía quieres romper con if
, puedes usar while (verdadero)
Ex.
$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++;
}
También puedes usar switch y por defecto.
$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++;
}