Sind “elseif” und “else if” völlig synonym?

Lesezeit: 3 Minuten

Benutzer-Avatar
Theodore R. Smith

Gibt elseif und else if auch ganz, oder gibt es da einen unterschied?

Hat Zend einen akzeptierten „Standard“, den man verwenden kann?

Während ich persönlich nicht gerne sehe elseif im Code, ich muss nur wissen, ob sie synonym sind und das PHP-Handbuch ist nicht am einfachsten zu durchsuchen.

  • Nicht jede andere Sprache verwendet else if, übrigens. Zum Beispiel verwendet VB auch ElseIf und Ruby verwendet elsif.

    – Daniel Vandersluis

    7. September 2010 um 20:37 Uhr

  • und Shell/Bash verwendet elif

    – Strickl

    7. September 2010 um 20:40 Uhr

  • Python verwendet auch Elif

    – greggz

    9. September 2011 um 16:37 Uhr

Benutzer-Avatar
Daniel Vandersluis

Von dem PHP-Handbuch:

In PHP können Sie auch ‘else if’ (in zwei Wörtern) schreiben und das Verhalten wäre identisch mit dem von ‘elseif’ (in einem einzigen Wort). Die syntaktische Bedeutung ist etwas anders (wenn Sie mit C vertraut sind, ist dies dasselbe Verhalten), aber unterm Strich würden beide zu genau demselben Verhalten führen.

Im Wesentlichen werden sie sich gleich verhalten, aber else if ist technisch äquivalent zu einer verschachtelten Struktur wie folgt:

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

Das Handbuch weist außerdem darauf hin:

Beachten Sie, dass elseif und else if nur dann als genau gleich betrachtet werden, wenn geschweifte Klammern wie im obigen Beispiel verwendet werden. Wenn Sie einen Doppelpunkt verwenden, um Ihre if/elseif-Bedingungen zu definieren, dürfen Sie else if nicht in zwei Wörter trennen, sonst schlägt PHP mit einem Parsing-Fehler fehl.

Was bedeutet, dass in der normalen Form der Kontrollstruktur (d. h. mit geschweiften Klammern):

if (first_condition)
{

}
elseif (second_condition)
{

}

entweder elseif oder else if kann verwendet werden. Wenn Sie jedoch die verwenden alternative SyntaxSie müssen verwenden elseif:

if (first_condition):
  // ...
elseif (second_condition):
  // ...
endif;

  • Gute Arbeit mit den Beispielschnipseln. Wenn überhaupt, ist die alternative Syntax alles, was notwendig ist, um zu beweisen, dass PHP einfach behandelt else if wie else { if {.

    – BoltClock

    7. September 2010 um 20:36 Uhr

  • PHP behandelt nicht else if wie else { if {sonst könnten Sie das nicht tun if (0) { } else if (0) { } else { }

    – Guido Hendriks

    10. Juli 2015 um 14:05 Uhr

  • @GuidoHendriks: Es ist nicht so, dass das eine wie das andere behandelt wird, sondern dass sie funktional gleichwertig sind. Ihr Beispiel entspricht dem verschachtelten Formular if (0) { } else { if (0) { } else { } }. Beachten Sie, dass es im letzten keine Mehrdeutigkeit gibt else Block, was bei kompletten Zweigen immer der Fall ist (jeder if hat ein else).

    – aussen

    16. Juli 2015 um 20:55 Uhr

  • Hier ist ein weiteres Beispiel als Referenz php.net/manual/en/control-structures.elseif.php#115851

    – WarumAyala

    10. August 2017 um 14:44 Uhr

  • Mit alternativem Synyax müssen Sie sich nur ‘Doppelpunkt’ und Endif von inner merken, wenn:if ($v1='1'): do_thing(); else: if($v1='b' ): do_another_thing(); else: do_smthing_else(); endif; endif; ist das Äquivalent von; if ($v1='1'): do_thing(); elseif($v1='b' ): do_another_thing(); else: do_smthing_else(); endif;

    – DDS

    21. August 2019 um 15:27 Uhr


Benutzer-Avatar
James Cowen

Die Framework Interoperability Group (FIG), die sich aus Mitgliedern zusammensetzt, zu denen die Entwickler von Zend ( https://github.com/php-fig/fig-standards#voting-members ) eine Reihe von Standardempfehlungen (PSR-#) zusammengestellt.

Zend2 und Symfony2 folgen bereits PSR-0.

Es gibt keine festen Regeln für Stile, aber Sie können versuchen, so viel wie möglich von PSR-2 zu befolgen.

Es gibt einen Kommentar zu else if vs elseif in PSR-2:

Das Schlüsselwort elseif SOLLTE anstelle von else if verwendet werden, damit alle Steuerschlüsselwörter wie einzelne Wörter aussehen.

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else

Einige der Empfehlungen sind genau das, Empfehlungen. Es liegt an Ihnen, ob Sie else if oder elseif verwenden

  • Vielen Dank für den Hinweis auf die Keywords-as-One-Word-Richtlinie.

    – Theodore R. Smith

    14. Dezember 2012 um 17:20 Uhr

  • Die Empfehlung impliziert das also else if ist ein einzelnes Kontrollschlüsselwort, das einfach passiert sehen wie mehrere Wörter.

    – Robert

    10. August 2021 um 20:00 Uhr

Ja, “elseif” und “else if” sind beide synonym, in gleicher Bedeutung und Bedeutung. Sie können „else if“ mit „elseif“ mischen.

For Example - We can use "else if" and "elseif" together.
if($condition){
  ...
}
else if($condition){
  ...
}
elseif($condition){
  ...
}

Nested:
if($condition){
  ...
}
else if($condition){
  if($condition){
    ...
  }
  elseif($condition){
    ...
  }
}

1361670cookie-checkSind “elseif” und “else if” völlig synonym?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy