Ich habe in mehreren Situationen führen, wo der Rest eines Blocks PHP-Code muss aufgrund einer Fehlerbedingung zu übersprungen werden (Datenbankverbindungsfehler, ungültige Eingabe, etc.). Als Student verwendet mein Professor einfach die
, was das Parsen der Datei stoppt und die Seite unvollständig lässt, ohne die Fußzeile oder sogar die schließenden HTML-Tags </body></html>
. Selbst wenn ein Fehler auftritt, gibt es keinen Grund, ungültiges HTML zu generieren, indem die schließenden Tags abgeschnitten werden.
Natürlich würde ein rein strukturierter Ansatz if
Aussagen verwenden, und dies ist in den meisten Fällen besser als goto
. Ich denke jedoch, dass, wenn Sie nur versuchen, aus einem PHP-Codeblock herauszuspringen, das Einfügen großer Code-Segmente in eine Struktur eher unelegant ist und den Code schwerer verständlich machen kann, als einfach eine goto
-Anweisung zu verwenden springt an das Ende des PHP-Blocks, kurz vor dem ?>
, da es schwer wird sich zu erinnern, dass eine ganze Menge Code tatsächlich Teil einer bedingten Anweisung 50+ Zeilen unter den if
oder elseif
Zeilen ist.
Jeder sagt, dass goto
Aussagen sind schlecht, aber es gibt gültige Verwendungen für goto
, die den Code leichter verständlich zu machen, wie aus tief verschachtelten Kontrollstrukturen zu springen und bis zum Ende eines PHP-Code-Block springen (vorausgesetzt, dass keine Ein eingebautes Sprachkonstrukt existiert dafür).
Ein Code-Konstrukt wie goto
ist nicht von Natur aus böse. Es kommt darauf an, wie Sie es verwenden.
Nein, so etwas gibt es nicht. Ich kann mir gar nicht vorstellen, wo du es benutzen könntest. – Hast
Was ist mit 'if' passiert? – deceze
Was Sie brauchen, ist 'goto' aber' goto' = ** schlechtes Design ** ... Es gibt 'if else' für das, was Sie brauchen. – CodeAngry