在PHP中使用goto
用PHP可以使用goto的故事。
有传言说goto会破坏程序的可读性,但在PHP中却无处可用。
因为可以使用break 2来跳出多重循环。
编程程序
<?php
goto end;
start:
echo 'start.' . PHP_EOL;
goto sotti;
atti:
echo 'atti.' . PHP_EOL;
goto start;
sotti:
echo 'sotti.' . PHP_EOL;
exit;
end:
echo 'end.' . PHP_EOL;
goto atti;
输出结果
$ php goto.php
end.
atti.
start.
sotti.
如果有这种程度的话还可以追上,但如果变得很长就不妙了。
限制
-
- 対象となるラベルは同じファイル上の同じコンテキスト
つまり関数外から関数内の行き来はできない
forやifの中のラベルにもgotoできない
ラベルにもgotoにも変数は利用できない
出来たらヤバイ 便利かもしれないけど更にカオスになる