## `goto`

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Imagen cortesía de » xkcd

El operador `goto` puede ser usado para saltar a otra sección en el programa. El punto de destino es especificado mediante una etiqueta seguida de dos puntos y la instrucción es dada como `goto` seguida de la etiqueta del destino deseado. Este `goto` no es completamente sin restricciones. La etiqueta de destino debe estar dentro del mismo fichero y contexto, lo que significa que no se puede saltar fuera de una función o método, ni se puede saltar dentro de uno. Tampoco se puede saltar dentro de cualquier clase de estructura de bucle o switch. Se puede saltar fuera de estos y un uso común es utilizar un `goto` en lugar de un `break` multi-nivel.

Ejemplo #1 Ejemplo de `goto`

`<?php
goto a;
echo 'Foo';
a:
echo 'Bar';
?>`

El resultado del ejemplo sería:

    Bar

Ejemplo #2 Ejemplo de `goto` en un bucle

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

El resultado del ejemplo sería:

    j alcanzó 17

Ejemplo #3 Esto no funcionará

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

El resultado del ejemplo sería:

    Fatal error: 'goto' into loop or switch statement is disallowed in script on line 2
    (Error fatal: 'goto' hacia el interior de un bucle o sentencia switch no esta permitido en el script en la línea 2)

> Nota:

> El operador `goto` está disponible a partir de PHP 5.3.