Any Way to Break If Statement in PHP

How can I jump out of the if statement block?

do {
if (true) {
echo 'one ';
break;
echo 'two ';
}
} while(0);
echo 'three ';

Just use the break function.
One can prevent deep nesting full of if-else statements in many cases by breaking

PHP - exit from IF block

Why not just turn it around.

if($bla): 
$bla = get_bla();
if(!empty($bla)) {
do($bla);
}
endif;

That way it will only run your code if $bla isn't empty.. That's kinda the point with if-statements

break if statement and continue loop

@Nigel Ren already commented what I was going to say but I'm adding it as an answer anyway. If statements don't need a break or continue. Look at this example:

foreach(...) {
if(condition) {
//will work only if the condition is true
} else {
//will work if the condition is not true
}

//will always work (after if-else block) as long as the loop continues
}

PHP - Break out of an if statement

Refining Anant answer

$progress_file_path = './data/progress.txt';
$last = 'unset';
$end = $limit;
if (file_exists($progress_file_path)) {
$scanned = file($progress_file_path);
if (count($scanned) < 0) {
$last = end($scanned);
$end = $limit + count($scanned);
}
}

Is there any way to break if operator like as while

Yes, using goto. Use with caution, as it's usually an indication of bad code habits elsewhere. It does have legitimate uses though (like breaking out of nested loops).

http://php.net/manual/en/control-structures.goto.php

I think your question is poorly-worded. I think this is the problem you're having:

if( foo ) {
if( bar ) {
baz();
} else {
qux();
}
} else {
qux();
}

You want to simplify this so that qux() need only be expressed once, rather than twice. A possible solution using goto exists:

if( foo ) {
if( bar ) {
baz();
} else {
goto quxLabel;
}
} else {
quxLabel:
qux();
}

This works, but I think a better solution (if possible in your case) is to compose your branch conditions. This requires that you be able to evaluate bar independently of foo, so I don't know if this applies in your case:

if( foo && bar ) baz();
else qux();

If bar depends on foo then you can still use this technique, but take advantage of the short-circuiting behaviour of the && operator:

if( foo && computeBar( foo ) ) baz();
else qux();

break out of if and foreach

if is not a loop structure, so you cannot "break out of it".

You can, however, break out of the foreach by simply calling break. In your example it has the desired effect:

$device = "wanted";
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;

// will leave the foreach loop immediately and also the if statement
break;
some_function(); // never reached!
}
another_function(); // not executed after match/break
}

Just for completeness for others who stumble upon this question looking for an answer..

break takes an optional argument, which defines how many loop structures it should break. Example:

foreach (['1','2','3'] as $a) {
echo "$a ";
foreach (['3','2','1'] as $b) {
echo "$b ";
if ($a == $b) {
break 2; // this will break both foreach loops
}
}
echo ". "; // never reached!
}
echo "!";

Resulting output:

1 3 2 1 !

How to exit if statement and continue to else

try {
//do method one

//error occurs during method one, need to exit and continue to else
if ($condition != "good") {
throw new Exception('foo');
}
} catch (Exception $e) {
//do method two

}


Related Topics



Leave a reply



Submit