Estruturas de Controle
PHP Manual

goto

(PHP 5 >= 5.3.0)

Qual é a pior coisa que pode acontecer se você usar o goto?
Imagem cortesia do » xkcd

O operador goto pode ser usado para ir diretamente para outro stor do programa. O ponto de destino é definido por um 'label' seguido de dois pontos, e a instrução é usada como goto seguida do 'label' desejado. O uso do goto não é completamente irrestrito. O 'label'de destino deve estar no mesmo arquivo e contexto, significando que você não pode pular para fora de uma função ou método, nem para dentro de um. Você também não pode saltar para dentro de um loop ou switch. Você pode saltar para fora deles, e um uso comum é usar o gotono lugar de um break multi-nivel.

Exemplo #1 Exemplo de goto

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

O exemplo acima irá imprimir:

Bar

Exemplo #2 Exemplo de goto com loop

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

O exemplo acima irá imprimir:

j hit 17

Exemplo #3 Isto não irá funcionar

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

O exemplo acima irá imprimir:

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

Nota:

O operador goto está disponível desde o PHP 5.3.


Estruturas de Controle
PHP Manual