If Abfrage

Zocker4Life

Well-known member
ID: 126615
L
10 Juni 2006
816
35
Folgende Frage habe ich:

Ich habe folgende If Abfrage:
if ($membertyp == 1) // Anb
{
include_once("inc/template_usermenue.inc");
}
else if ($membertyp == 2) // Ein
{
include_once("inc/template_buyermenue.inc");

Jetzt sind 2 zusätzliche Membertypen hinzugekommen, also 3 und 4.

Kann ich das ganze wie folgt lösen:
if ($membertyp == 1+3) // Anb
{
include_once("inc/template_usermenue.inc");
}
else if ($membertyp == 2+4) // Ein
{
include_once("inc/template_buyermenue.inc");

oder muss ich alle 4 Abfragen jedes mal einzeln aufisten?

Oder ist nur das + falsch?
 
Naja, mit dem + wirst Du bei 4 und 6 landen.

Entweder nimmst Du in_array() oder Du prüfst halt auf eine von beiden Bedingungen:
PHP:
if (in_array($membertyp, array(1, 3))
  do_something();

//

if ($membertyp == 1 or $membertyp == 3)
  do_something();
 
Du fragst ja jetzt ab, ob $membertyp == 1+3 ist, also $membertyp == 4, denn die 1 und die 3 werden ja einfach addiert...

Was du tatsächlich willst, ist wohl eher if($membertyp==1||$membertyp==3)...

#edit: zu langsam ;)
 
Wie wäre es mit 'nem Switch?

PHP:
switch($membertyp)
{
      case 1:
      case 3:
           include_once("inc/template_usermenue.inc");
           break;

      case 2:
      case 4:
           include_once("inc/template_buyermenue.inc"); 
           break;
}
 
Hi,

so wie du es jetzt hast, würde im ersten Fall geprüft werden, ob der Typ gleich 4 ist und im 2. Fall gleich 6, da die Additionen natürlich zuerst berechnet werden.

Wenn du für 1 und 3 das gleiche machen willst, kannst du das mit if ($membertyp == 1 OR $membertyp == 3) machen. Genau so dann auch für 2 und 4.

Sollten noch mehr Typen dabei kommen, kannst du einfach noch mehr Möglichkeiten mit "OR" dranhängen.
 
Wie wäre es mit 'nem Switch?

PHP:
switch($membertyp)
{
      case 1:
      case 3:
           include_once("inc/template_usermenue.inc");
           break;

      case 2:
      case 4:
           include_once("inc/template_buyermenue.inc"); 
           break;
     default:
           //mach was
           break;


}


Der Switch ist denke ich die eleganteste Lösung, da man hier Änderungen auch zukünftig übersichtlich eintragen kann, aber hier sollte noch ein default hin (habe ich mal frech in das Zitat eingefügt)

Viele Grüße aus Berlin

leller