Heim > Artikel > Backend-Entwicklung > Eine kurze Diskussion über die Verwendung der Goto-Syntax in PHP
In diesem Artikel erfahren Sie, wie Sie die Goto-Syntax in PHP verwenden. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
In C++, Java und vielen Sprachen gibt es eine magische Syntax, die Goto ist. Wie der Name schon sagt, dient es dazu, direkt irgendwohin zu gelangen. Aus Code-Sicht bedeutet dies, direkt zur angegebenen Stelle zu springen. Wir haben diese Funktion auch in PHP. Sehen wir uns zunächst an, wie sie verwendet wird:
goto a; echo "1"; // 不会输出 a: echo '2'; // 2
Wenn der Code zur Goto-Position ausgeführt wird, springt er zu der Codezeile, in der sich a: befindet, und setzt die Ausführung fort. Es fühlt sich sehr lustig an. Diese Funktion ist sehr nützlich für komplexe verschachtelte Ifs oder das Springen aus einigen Schleifen, insbesondere für die Behandlung bestimmter Ausnahmen oder Fehlersituationen, wie zum Beispiel:
for ($i = 0, $j = 50; $i < 100; $i++) { while ($j--) { if ($j == 17) { // 假设$j==17是一种异常情况 goto end; // 直接跳走了,循环结束的结果也不输出了 } } } echo "i = $i"; end: echo 'j hit 17'; // 直接到这里输出或者处理异常情况了
Es fühlt sich ziemlich gut an, nicht wahr, aber es gibt auch einige Goto-Syntaxen Einschränkungen:
Zum Beispiel sind die folgenden Codes ungültig:
$a = 1; goto switchgo; switch ($a){ case 1: echo 'bb'; break; case 2: echo 'cc'; switchgo: echo "bb"; break; } goto whilego; while($a < 10){ $a++; whilego: echo $a; } // Fatal error: 'goto' to undefined label 'ifgo'
Sie werden alle melden Gleicher Fehler, aufgrund des Gültigkeitsbereichs. Die Beziehung kann das definierte goto-Tag nicht finden. Darüber hinaus ist zu beachten, dass die Verwendung von „goto“ zu einer Endlosschleife führen kann, wie unten gezeigt:
b: echo 'b'; goto b;
Wenn der Code für „goto“ ausgeführt wird, springt er zur vorherigen b-Label-Zeile zurück und wird dann weiter nach unten ausgeführt, um „goto“ zu erreichen wieder zu einer Endlosschleife. Es fühlt sich ein bisschen wie while(true) an. Allerdings gibt es in dieser Goto-Schleife keine Unterbrechung, Sie können in Goto nur zu anderen Orten gehen.
Die Verwendung der Goto-Syntax ist also sehr selten, da sie den logischen Fluss Ihres Codes stört, aber Leute, die sie mögen, werden das Gefühl haben, dass sie den Code sehr flexibel machen kann. Dies erfordert ein wohlwollendes und kluges Urteilsvermögen. Derzeit wird die Verwendung dieser Syntax in der Dokumentation der meisten Sprachen, einschließlich PHP, nicht ausdrücklich empfohlen. Mein Vorschlag ist, dass Sie versuchen, die Goto-Syntax nicht zu verwenden, wenn es sich nicht um eine ganz besondere Situation handelt oder um Ihre Fähigkeiten unter Beweis zu stellen. Wenn der Projektcode kompliziert wird, kann es leicht sein, andere oder sich selbst zu verwirren.
测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/goto%E8%AF%AD%E6%B3%95%E5%9C%A8PHP%E4%B8%AD%E7%9A%84%E4%BD%BF%E7%94%A8.md 参考文档:https://www.php.net/manual/zh/control-structures.goto.php
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Verwendung der Goto-Syntax in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!