Home » Php » php – Fatal error: 'break' not in the 'loop' or 'switch' context in

php – Fatal error: 'break' not in the 'loop' or 'switch' context in

Posted by: admin April 23, 2020 Leave a comment

Questions:

I’ve setup a wordpress blog (I imported the db) and it’s throwing this error

Fatal error: ‘break’ not in the ‘loop’ or ‘switch’ context in
/home/kbuzz/webapps/kb_blog/wp-content/plugins/types/embedded/common/toolset-forms/lib/adodb-time.inc.php
on line 1012

The code is below from line 1004 to 1013

function adodb_tz_offset($gmt,$isphp5)
{
    $zhrs = abs($gmt)/3600;
    $hrs = floor($zhrs);
    if ($isphp5) 
        return sprintf('%s%02d%02d',($gmt<=0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); 
    else
        return sprintf('%s%02d%02d',($gmt<0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); 
    break;
}
How to&Answers:

PHP 5.x.x, a break statement outside a for, foreach, while or switch statement DID NOT throw an error message and was syntactically okay.

PHP 7.0 and higher, a break statement is no longer permitted outside a for, foreach, while or switch statement and gives a fatal error.

Example code:

<?php
if (2 == 1 + 1) {
    echo "Dummy Example of break inside if condition";
    break; // - Valid in php 5.*
           // - Gives a Fatal error in PHP 7.*.*:
           // "Fatal error: 'break' not in the 'loop' or 'switch' context in ... "
}
?>

Answer:

look at the break;

replace with

return false;

in your code and it will work.

Answer:

Removing break fixed it

function adodb_tz_offset($gmt,$isphp5)
{
   $zhrs = abs($gmt)/3600;
    $hrs = floor($zhrs);
if ($isphp5) 
    return sprintf('%s%02d%02d',($gmt<=0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); 
else
    return sprintf('%s%02d%02d',($gmt<0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); 
}