goto
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
» xkcd의 이미지 제공
goto
연산자를 사용하여 프로그램의 다른 섹션으로 이동할 수 있습니다. 대상 지점은 대소문자를 구분하는 레이블과 콜론으로 지정되며 명령은 원하는 대상 레이블이 뒤에 오는 goto
로 제공됩니다. 이것은 완전한 무제한 goto
가 아닙니다. 대상 레이블은 동일한 파일 및 컨텍스트 내에 있어야 합니다. 즉, 함수 또는 메서드 밖으로 이동할 수 없으며 해당 항목으로 이동할 수도 없습니다. 또한 모든 종류의 loop 또는 switch 구조로 이동할 수 없습니다. 여기서 이동할 수 있으며 일반적인 용도는 다중 수준 break
대신 goto
를 사용하는 것입니다.
예제 #1 goto
예제
<?php
goto a;
echo 'Foo';
a:
echo 'Bar';
?>
위의 예는 다음을 출력합니다.
Bar
예제 #2 goto
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';
?>
위의 예는 다음을 출력합니다.
j hit 17
예제 #3 이것은 작동하지 않습니다
<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
loop:
}
}
echo "$i = $i";
?>
위의 예는 다음을 출력합니다.
Fatal error: 'goto' into loop or switch statement is disallowed in script on line 2