• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wieso kann man elseif-Anweisungen nicht "ineinander verschachteln"?

stvn

Neues Mitglied
Frage bzgl. else- innerhalb von elseif-Anweisung

Moin.

Ich hatte mich grade dumm und dämlich nach dem Problem gesucht und letztendlich festgestellt, dass man elseif-Anweisungen scheinbar nicht so "ineinander verschachteln" kann?


Das funktioniert nicht.
PHP:
if {
   ...
} elseif {
   ...
} elseif {

   if {
      ...
   } elseif {
      ...
   } else {
      ...
   }

} else {
   ...
}

Das hingegen schon.
PHP:
if {
   ...
} elseif {
   ...
} elseif {

   if {
      ...
   } elseif {
      ...
   } elseif {
      ...
   }

} else {
   ...
}

Wieso ist das so? Also wieso darf eine else-Anweisung nicht innerhalb einer elseif-Anweisung vorkommen?

Danke!
stvn
 
Zuletzt bearbeitet:
Hallo stvn,

gute frage da es bei nicht so ist :O)
Würde mal auf ein anderen Fehler tippen.
Was sagt PHP error eigentlich dazu oder wieso kommst darauf das dies nicht funktioniert?

Cheffchen
 
Fehlermeldung:
"Parse error: syntax error, unexpected '{' in ... on line 65"

Ich komme darauf, weil ich zur Fehlerbehebung lediglich die verschachtelten else-Anweisungen in elseif-Anweisungen umbenenne (siehe 1. Post) und es problemlos funktioniert. oO

Nachtrag:
Wenn ich jetzt zB die else-Anweisung in Zeile 65 in eine elseif-Anweisung umbenenne, kommt die Fehlermeldung wieder für Zeile 77, wo die nächste verschachtelte else-Anweisung ist.
 
Hallo,

ich versteh jetzt nicht und zeilen sehe ich ja nicht :O)

ich machs kurz, dein code der nicht gehen soll ist der follgende nur mit Ausgabe und der funzt.
PHP:
<?php
error_reporting(E_ALL);
#error_reporting(-1); // -1 = alle Bits gesetzt, alle Fehler anzeigen
$A="3";
$B="2";
if ($A=="1") {
   echo "1<br>";
} elseif ($A=="2"){
   echo "2<br>";
} elseif ($A=="3"){
   if ($B=="1"){
      echo "b1<br>";
   } elseif ($B=="2"){
     echo "b2<br>";
   } else {
      echo "b3<br>";
   }
} else {
   echo "3<br>";
}
 
?>
Also hast woanders ein fehler :O)

Cheffchen
 
Ja, genau so sieht mein Code aus.
Meine if-/else-/elseif-Anweisungen enthalten lediglich alle nur Code nach folgendem Muster:
PHP:
$query = "SELECT * FROM tabelle WHERE ... LIMIT $start,$proseite";		
$gesamt = "$stats_releases_public";
			
$description = '...';


error_reporting(E_ALL); bringt nichts Neues. Nur meine oben genannten Fehlermeldungen.
(Wenn ichs auf meine oben geschilderte Weise "löse" zeigts mir auch keine error_reporting(E_ALL); Fehler an.):cry:

Bin den Code nun auch mehrfach durchgegangen und kann keine(n) Fehler finden...
 
Boah... ich bin so dumm...:oops::oops::oops::oops::oops:

Hab den Fehler gefunden.


Wenn ich den Code der verschachtelten Anweisung von
PHP:
elseif (bedingung) {
			
}

in

PHP:
else (bedingung) {
			
}

ändere, wie soll denn das funktionieren??!?!:oops:

Tut mir leid. Das passiert mir nicht nochmal.:mrgreen:

Und danke für deine Hilfe/Mühe !!!
 
Zurück
Oben