在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にも変数は利用できない

出来たらヤバイ 便利かもしれないけど更にカオスになる

广告
将在 10 秒后关闭
bannerAds