if-Abfrage mit vielen »OR« vereinfachen

27apricot

Erfahrenes Mitglied
Hallo,

geht eine if-Abfrage wie diese zu verkürzen:
PHP:
if($monat == "01" OR $monat == "03" OR $monat == "05" OR $monat == "07" OR $monat == "08" OR $monat == "10" OR $monat == "12")
Ich hab' es so probiert:
PHP:
if($monat == "01" OR "03" OR "05" /*[...]*/)
Da kommt zwar keine Fehlermeldung aber das Ergebnis stimmt nicht.

Schöne Grüße:
27apricot
 
Probier mal:
PHP:
<?php
if($monat % 2 != 0 && $monat <= 7 || $monat >= 8 && $monat % 2 == 0)
?>
hab das jetzt nicht getestet, sollt aber funtionieren.
 
Hi,

am besten du gibts deine Werte in ein Array und überprüfst mit

if(in_array($monat))

habs jetzt nicht probiert, sollte aber so funktionieren.

mfg.
Wolfgang
 
Hallo allerseits,

an birnkammer: Da haste recht, klingt logisch, danke also für den Denkanstoß.

an GarGod: Dank dir. Das Beispiel funktioniert sicher, aber der Code in meiner Frage war eher ein spezielles Beispiel für ein häufiger auftauchendes »Problem« (»Problem« ist hier freilich etwas überzogen ;) ). Das müssen nicht immer nur Zahlen sein. Ich suchte also eher nach einer allgemeiner gültigen Antwort auf die Frage: wie kann man eine Variable mit verschiedenen Elementen vergleichen, ohne die Variable jedes Mal schreiben zu müssen.

an Wolfgang H: Auch dir vielen Dank. So hab' ich's gemacht und es funktioniert. Es ist vielleicht nicht viel weniger Code als vorher, aber übersichtlicher.

Hier ist, wie es jetzt aussieht:
PHP:
$monat_31 = array("01", "03", "05", "07", "08", "10", "12");
if(in_array($monat, $monat_31))

Schöne Grüße:
27apricot.
 
Zurück