Moin!
Es gibt aber einen Grund, warum dir hier alle zu else-if raten.
A: Performancegründe. Bei deiner Variante werden immer zwei Bedingungen geprüft. Mag unbedeutend erscheinen, aber wenn du deine If-Abfragen jedes mal so unperformant gestaltest und dein System eine entsprechende Größe erreicht, wirst dus merken.Performancegründe sind für die uninformierten Leser immer ein prima Argument, aber es ist doch reichlich haarsträubend!
Das musst du mir als informiertem Leser jetzt aber nochmal erklären ;) Ich sagte ja, dass Performance-Probleme nur dann entstehen, wenn man massenweise so verfährt, siehe
Ich rate nicht aus Performancegründen zu elseif, sondern aus fachlichen Gründen: Wer nicht eingeloggt ist, für den soll fachlich die Prüfung auf irgendeinen speziellen Typ nicht durchgeführt werden. Im Allgemeinen weiß man von nicht eingeloggten Usern nämlich nichts, auch nicht ihren Typ.
Die fachliche Anforderung bestimmt also die Gestaltung der Bedingung.
Und dein Performanceargument ist auch aus einem anderen Grund Unsinn: Für eingeloggte User werden ja grundsätzlich BEIDE Bedingungen ausgewertet, bei beiden Varianten, egal ob zwei IF, oder IF-ELSEIF.
wenn du deine If-Abfragen jedes mal so unperformant gestaltest
Oder hab ich da Bockmist verzapft? Wenn ja, bitte um Begründung :P Will ja schließlich auch noch was lernen ;)
Begründe, was hier unperformant ist.
Mit dem Gedanken "Ich will ja Performance, und der RIDER hat gesagt, da muss man ELSEIF nehmen" entsteht falscher Code. Nämlich in den Fällen, in denen zwei voneinander unabhängige Bedingungen geprüft werden müssen.
Grüße Sven