goto

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Was ist das schlimmste, was passieren könnte, wenn man goto benutzt?
Bild von » xkcd

Der goto-Operator kann benutzt werden, um innerhalb eines Programs zu einer anderen Anweisung zu springen. Die Zielanweisung wird durch einen Zielnamen festgelegt, bei dem die Groß- und Kleinschreibung beachtet werden muss, gefolgt von einem Doppelpunkt, und der goto-Anweisung wird der entsprechende Zielname angefügt. Hierbei handelt es sich jedoch nicht um ein vollständig uneingeschränktes goto: Die Zielanweisung muss in der selben Datei und im selben Kontext liegen, d. h. dass weder aus einer Funktion oder Methode herausgesprungen werden kann, noch in sie hineingesprungen. Weiterhin kann nicht in eine Schleifen- oder switch-Anweisung hineingesprungen werden. Es ist jedoch möglich aus diesen herauszuspringen, weshalb goto häufig als Ersatz für ein mehrstufiges break verwendet wird.

Beispiel #1 goto-Beispiel

<?php
goto a;
echo 
'Foo';
 
a:
echo 
'Bar';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Bar

Beispiel #2 goto Schleifenbeispiel

<?php
for ($i=0$j=50$i<100$i++) {
  while (
$j--) {
    if (
$j==17) goto end
  }  
}
echo 
"i = $i";
end:
echo 
'j hit 17';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

j hit 17

Beispiel #3 Das wird nicht funktionieren

<?php
goto loop;
for (
$i=0$j=50$i<100$i++) {
  while (
$j--) {
    
loop:
  }
}
echo 
"$i = $i";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

PHPUnit in der Version 10 erschienen

Das beliebte Testframeworks PHPUnit ist in der Version 10 erschienen und steht zum Download bereit ...

TheMax

Autor : TheMax
Kategorie: Software & Web-Development

Laravel 10 veröffentlicht

Laravel Version 10 steht mit einer Mindestanforderung von PHP 8.1 zum Download bereit. ...

admin

Autor : admin
Kategorie: Software & Web-Development

DeepL Erweiterung Write als beta veröffentlicht

DeepL hat eine neuen Dienst Namens „write“ veröffentlicht, der die Rechtschreibung und Grammatik mit KI verbessern soll. ...

admin

Autor : admin
Kategorie: Dies und Das

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

html parser Elemente formatieren

Moin, ich benötige mal euren Rat. Ich habe mit der simple_html_dom lib einen Parser für Rezepte von chefkoch.de gebaut. Um die Zutaten für mei ...

Geschrieben von BBBln am 18.03.2023 10:01:28
Forum: PHP Developer Forum
Einen Datensatz einer MySQL-Datenbank bearbeiten

Das ist nicht unbedingt notwendig. Man nennt das so wie du es jetzt wohl hast Affenformular und ist eine durchaus gängige Praxis. Noch als Hinwe ...

Geschrieben von jonas3344 am 10.03.2023 18:12:26
Forum: PHP Developer Forum
Benötige Hilfe

Danke, ich bin raus! :( PS: ich habe einen Beitrag höher noch ergänzt. Alles klar, Problem ist gelöst

Geschrieben von hape1947 am 08.03.2023 16:01:38
Forum: Jobangebote
Einen Datensatz einer MySQL-Datenbank bearbeiten

scatello: Vielen Dank für deine Antwort! Ich bin jetzt mit Hilfe des Buches etwas weiter gekommen. Es gibt ja eine Tabelle (Datei index.php), ...

Geschrieben von fawin am 07.03.2023 13:48:13
Forum: PHP Developer Forum