「goto」ステートメントは、ASM またはその他のアセンブラー言語からそのまま出てきます。
ここにリンクがあります: http://be2.php.net/manual/en/control-structures.goto.php
私は疑問に思っています: これは私のコードをよりよく整理するために何ができますか? 大規模なプロジェクトでこれを台無しにすることなく実装するにはどうすればよいですか。goto を使用すると前後にジャンプできるため、これを間違った方法で使用すると、偶発的な代入と無限ループが発生するのを待っています。
誰かがこれの良い使い方の例を教えてもらえますか?
編集:わかりました、私はいくつかの返信を見てきましたが、明らかに「goto」ステートメントの使用とそれが悪いことについて幅広いコンセンサスが存在します.
だから私はまだ疑問に思っています.なぜPHPはわざわざそれを言語に追加するのでしょうか. 彼らがその中に何かを見ていないなら、彼らはそれをしません... では、なぜですか?
また、一般的な「goto」に関するStackOverflowの議論はこちら
EDIT2: この質問が goto ステートメントについて悲しいことに多くの悪いことを引き起こしたのを見て、私は行って父に尋ねました。彼は 52 歳で、産業技術者です。
彼は、彼の時代にかなりの量のプログラミングを行い、そのほとんどが FORTRAN と COBOL であると私に何度か言いました。現在、彼は IT サービス、サーバーおよびネットワーク管理などを行っています。
とにかく、彼は「私の時代に戻って...」についていくつか言いました。
それについて少し話し合った後、彼はgotoステートメントに戻り、学生時代に戻っても、それが賢明ではないことをすでに知っていたと言いました.それを使用するという考えはありましたが、当時はそれほど良いものはありませんでした. Try/catch はまだ数年先のことで、エラー処理はほとんど存在しませんでした。
では、プログラムをチェックするために何をしましたか? 最後に数行を追加して、出力とコードのチェックインに必要なすべてを印刷できるようにしてから、「goto printing;」などの行を配置して、データの印刷を開始します。
このようにして、コードを徐々にデバッグしていきました。
彼は、現代のプログラミングの世界での goto の使用はほとんど役に立たないことに同意します。彼が正当だと考える唯一の用途は、極端なデバッグや予期しない状況で使用される「緊急休憩」です。のようなものgoto fatal_error;
で、コードの「fatal_error」部分にいくつかのことを実行させて、詳細な結果を表示します。
ただし、何かを作成している間だけです。完成品には goto ステートメントを含めないでください。