How to Use the goto Statement in PHP

The goto statement in PHP allows you to jump execution to another section of your script. This article explains how the goto statement works, detailing its syntax, practical use cases—such as breaking out of deeply nested loops—and the strict limitations PHP imposes on its usage to maintain code structure.

PHP goto Syntax

To use the goto statement, you must define a target label and a jump statement. The target label is an identifier followed by a colon (:), and the jump statement consists of the goto keyword followed by the target label name and a semicolon (;).

<?php
goto my_label;
echo "This line will be skipped.";

my_label:
echo "This line is executed.";
?>

In this example, the script encounters goto my_label; and immediately jumps to the line containing my_label:, skipping the first echo statement.

Limitations of goto in PHP

PHP enforces strict rules on where you can jump using goto to prevent spaghetti code.

Practical Example: Breaking Out of Nested Loops

The most common and accepted use case for goto in PHP is breaking out of deeply nested loops. While break can accept a numeric argument to exit multiple levels, goto can make the code more readable by explicitly naming the destination.

<?php
for ($i = 0; $i < 10; $i++) {
    for ($j = 0; $j < 10; $j++) {
        if ($i === 5 && $j === 5) {
            goto end_of_loops; // Exit both loops immediately
        }
        echo "i: $i, j: $j\n";
    }
}

end_of_loops:
echo "Loops finished safely.";
?>

By jumping directly to end_of_loops:, the program avoids executing any further iterations of either loop, providing a clean exit point.