詳しくはマニュアルを
http://www.php.net/manual/ja/control-structures.goto.php
goto文はCやperlでもあります。
goto文はあまり使わないようにとされているようです。
確かに使い方を誤るともの凄くソースが読みづらくなります。
上から下に進んでいくのに、下から上にjumpするように書かれていたりなどしたら、ソースを読む時に処理を追い辛くてしょうがないですね。
エラー時や特定時のみ利用するのがいいみたいです。
特定時のみ使うのであれば有効かと思い、軽くパフォーマンスを見てみました。
結果は以下のようになっています。
goto文
<?php
$j = 0;
for ($i=0;$i<10000000;$i++) {
goto A;
A : {
$j++;
}
}
echo $j;
exit(0);
実行結果
関数
<?php
$j = 0;
for ($i=0;$i<10000000;$i++) {
calc($j);
}
echo $j;
exit(0);
function calc(&$j) {
$j++;
}
実行結果
goto文の方が早いですね。
関数を呼ぶオーバヘッドが無いからかな?
一度の処理で、複数回のエラー処理をしないといけないときなどは、関数化するよりもgoto文を使うのもありかもですね。
0 件のコメント:
コメントを投稿