I am getting sometimes this error on production at:
if( true == $objWebsite ) { $arrobjProperties = (array) $objWebsite->fetchProperties( ); if( false == array_key_exists( $Id, $Properties ) ) { break; } $strBaseName = $strPortalSuffix . '/'; return $strBaseName; } $strBaseName = $strSuffix ; return $strBaseName;
I have tried to reproduce this issue. But not getting any progress. $Id, $Properties having value received.
Does anyone know when does ‘Cannot break/continue 1 level’ comes in PHP?
I have seen this post PHP Fatal error: Cannot break/continue. But didn’t got any help.
Advertisement
Answer
You can’t “break” from an if statement. You can only break from a loop.
If you want to use it to break from a loop in a calling function, you need to handle this by return value – or throw an exception.
Return value method:
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.
Using exceptions – beautiful example here: 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'; ?>