PHPフロー制御のgoto文

1351 ワード

gotoオペレータは、プログラム内の別の位置にジャンプするために使用することができる.この目標位置は、目標名にコロンを付けてマークすることができ、ジャンプ命令はgotoの後に目標位置をつなぐマークである.PHPのgotoには一定の制限があり、ターゲットの位置は同じファイルと役割ドメインにしか位置しません.つまり、1つの関数やクラスメソッドからジャンプすることも、別の関数にジャンプすることもできません.任意のループまたはswitch構造にジャンプすることもできません.ループまたはswitchから飛び出すことができ、通常の用法は多層breakの代わりにgotoを用いる.
Example#1 gotoの例<?php
gotoa;
echo'Foo';

a:
echo'Bar';
?>
以上のルーチンが出力します.
Bar

Example#2 gotoジャンプループ例<?php
for($i=0,$j=50;$i<100;$i++){
while($j--){
if($j==17)gotoend;
}
}
echo"i=$i";
end:
echo'jhit17';
?>
以上のルーチンが出力します.
j hit 17

Example#3以下の表記は無効です<?php
gotoloop;
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

Note:
gotoオペレータはPHP 5.3以降でのみ有効です.