Documentación offline PHP master

goto

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

goto#

¿Cuál es la cosa más extraña al usar goto?

El operador goto puede ser utilizado para continuar la ejecución del script en otro punto del programa. El destino es especificado por una etiqueta sensible a mayúsculas y minúsculas, seguida de dos puntos, y la instrucción goto es luego seguida de esta etiqueta. goto no está totalmente sin limitaciones. La etiqueta de destino debe estar en el mismo contexto y fichero, lo que significa que no es posible cambiar de método o función, ni ir a otra función. Asimismo, es imposible entrar en una estructura de bucle o un switch. Sin embargo, es posible salir de ellas, y el uso común es entonces utilizar goto como un break.

Ejemplo con goto

<?php

goto a;
echo 'Foo';

a:
echo 'Bar';

?>

El ejemplo anterior mostrará:

Bar

Ejemplo de bucle con goto

<?php
for ($i = 0, $j = 50; $i < 100; $i++) {
    while ($j--) {
        if ($j == 17) {
            goto end;
        }
    }
}
echo "i = $i";
end:
echo 'j hit 17';

?>

El ejemplo anterior mostrará:

j hit 17

Esto no funcionará

<?php
goto loop;
for ($i = 0, $j = 50; $i < 100; $i++) {
    while ($j--) {
        loop:
    }
}
echo "$i = $i";

?>

El ejemplo anterior mostrará:

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2