Иногда я получаю эту ошибку при производстве:
if( true == $objWebsite ) { $arrobjProperties = (array) $objWebsite->fetchProperties( ); if( false == array_key_exists( $Id, $Properties ) ) { break; } $strBaseName = $strPortalSuffix . '/'; return $strBaseName; } $strBaseName = $strSuffix ; return $strBaseName;
Я попытался воспроизвести эту проблему. Но не добиться прогресса. $ Id, $ Свойства, имеющие полученное значение.
Кто-нибудь знает, когда «Не удается сломать / продолжить 1 уровень» входит в PHP?
Я видел это сообщение PHP Неустранимая ошибка: не удается сломать / продолжить . Но не получил никакой помощи.
Вы не можете «сломать» из оператора 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'; ?>
Если внутри функции просто изменить break; вернуться;
Если вы хотите по-прежнему отрываться от if
, вы можете использовать while (true)
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++; }
в$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++; }