Ankündigung

Einklappen
Keine Ankündigung bisher.

IF-Bedingung Zusammenfassen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IF-Bedingung Zusammenfassen

    Tach

    ist es möglich eine If-Bedingung zusammenzufassen? Also z.B. bei folgendem Codeschnipsel:

    PHP-Code:
    <?php
          
    if(isset($_GET['seite']) AND $_GET['seite'] == 'genokonzept/index.htm' OR 
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/fuerjeden/index.htm' OR
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/vorteile/index.htm' OR
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/familien/index.htm' OR
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/business/index.htm' OR
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/50plus/index.htm' OR
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/schuldner/index.htm' OR
             isset(
    $_GET['seite']) AND $_GET['seite'] == 'genokonzept/p17/index.htm') { 
    ?>
    Wie ihr seht sind hier wiederholungen (immer das isset), vielleicht könnt ihr mir helfen. Habs schon vergebens mit dem Manual und mit der Suche versucht

    Danke euch

    MFG HK

  • #2
    So:
    PHP-Code:
    <?php
        
    if(isset($_GET['seite']) && (...))
    ?>

    Kommentar


    • #3
      komisch, als ich das versuchte klappte es nicht *grml* danke dir, xabbuh

      Kommentar


      • #4
        ist es nicht wesentlich übersichtlicher das ganze in 2 geschachtelte IF's zu packen?
        Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

        Kommentar


        • #5
          Mach es doch ganz anders.
          PHP-Code:
          <?php
             
          if(isset($_GET['seite'])):
                 
          // $_GET['seite'] hat einen Wert, juhuu
                 
          switch($_GET['seite']):
                     case 
          'irgendwas'/* mach was */
                         
          break;
                     
          // usw. ...
                 
          endswitch;
             endif;
          ?>

          Kommentar


          • #6
            Zitat von xabbuh
            So:
            PHP-Code:
            <?php
                
            if(isset($_GET['seite']) && (...))
            ?>
            ja so würde ich es auch machen:
            PHP-Code:
            <?
              if(isset($_GET['seite']) AND 
                ($_GET['seite'] == 'genokonzept/index.htm') OR 
                    ($_GET['seite'] == 'genokonzept/fuerjeden/index.htm') OR
                    ($_GET['seite'] == 'genokonzept/vorteile/index.htm') OR
                    ($_GET['seite'] == 'genokonzept/familien/index.htm') OR
                    ($_GET['seite'] == 'genokonzept/business/index.htm') OR
                    ($_GET['seite'] == 'genokonzept/50plus/index.htm') OR
                    ($_GET['seite'] == 'genokonzept/schuldner/index.htm') OR
                    ($_GET['seite'] == 'genokonzept/p17/index.htm')) 
              {
                     ///blabla
              }
            ?>
            Zitat von HK
            komisch, als ich das versuchte klappte es nicht *grml* danke dir, xabbuh
            hmmm? was klappt denn nicht?
            Es gibt 10 Wege Binärcode zu verstehen. Ganz oder garnicht

            Kommentar


            • #7
              nein jetzt klappt es. Switch ist hier glaub nicht angebracht, da er das selbe macht. Also so sieht die ganze If-Anweisung nun aus:

              PHP-Code:
                  <?php 
                    
              if(isset($_GET['seite']) AND ($_GET['seite'] == 'genokonzept/index.htm' OR 
                                                  
              $_GET['seite'] == 'genokonzept/fuerjeden/index.htm' OR
                                                  
              $_GET['seite'] == 'genokonzept/vorteile/index.htm' OR
                                                  
              $_GET['seite'] == 'genokonzept/familien/index.htm' OR
                                                  
              $_GET['seite'] == 'genokonzept/business/index.htm' OR
                                                  
              $_GET['seite'] == 'genokonzept/50plus/index.htm' OR
                                                  
              $_GET['seite'] == 'genokonzept/schuldner/index.htm' OR
                                                  
              $_GET['seite'] == 'genokonzept/p17/index.htm')) { 
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/fuerjeden/index.htm"]   ...f&uuml;r jeden[/url]</td>'."\n";
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/vorteile/index.htm"]   Vorteile[/url]</td>'."\n";
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/familien/index.htm"]   Junge Familien[/url]</td>'."\n";
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/business/index.htm"]   Business Kunden[/url]</td>'."\n";
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/50plus/index.htm"]   50+[/url]</td>'."\n";
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/schuldner/index.htm"]   Schuldner[/url]</td>'."\n";
                      echo 
              '  </tr><tr>'."\n";
                      echo 
              '    <td>[url="index.php?seite=genokonzept/p17/index.htm"]   Eigenheimzulage §17[/url]</td>'."\n";
                    }
              ?>
              Das ganze ist für ein Menü (bzw Untermenü welches aufklappt). Vielleicht hab ichs ja auch umständlich gemacht

              Kommentar


              • #8
                Ich finde switch () trotzdem die elegantere Lösung

                PHP-Code:
                <?php
                if (isset($_GET['seite'])) {
                  switch (
                $_GET['seite']) {
                  case 
                'genokonzept/index.htm':
                  case 
                'genokonzept/fuerjeden/index.htm':
                  case 
                'genokonzept/vorteile/index.htm':
                  case 
                'genokonzept/familien/index.htm':
                  case 
                'genokonzept/business/index.htm':
                  case 
                'genokonzept/50plus/index.htm':
                  case 
                'genokonzept/schuldner/index.htm':
                  case 
                'genokonzept/p17/index.htm':
                     echo 
                '</tr><tr>' ...
                     break;
                  }
                }
                ?>
                Wie aber wärs, wenn du die Pfade in einen Array schreibst und per
                in_array() abfragst ob $_GET['seite'] darin vorkommt. Wenn ja kannste
                den Array auch noch zur Ausgabe verwenden.

                Kommentar


                • #9
                  Ist zumindest übersichtlicher
                  Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                  Kommentar


                  • #10
                    Aber das mit dem Array solltest du dir vielleicht wirklich überlegen:

                    PHP-Code:
                    <?php
                    $menu 
                    = array(
                      
                    'name1' => 'link1',
                      
                    'name2' => 'link2',
                      ..);
                    if (isset(
                    $_GET['seite']) && in_array($_GET['seite'], $menu)) {
                      foreach (
                    $menu as $name => $link) {
                        
                    printf('<tr>%s<td>[url="index.php?seite=%s"]   %s[/url]</td>%s</tr>'"\n"$link$name"\n");
                      }
                    }
                    ?>

                    Kommentar


                    • #11
                      hmm stimmt, auf array kam ich hier gar nicht. Dafür bei der Hintergrundfarbe. Versuch ich mal, wenn ich die Seite einigermaßen fertig hab.

                      Danke

                      Kommentar


                      • #12
                        Ich würde statt isset lieber !empty verwenden, da es bei manchen Sachen mit isset Fehlermeldungen geben kann.
                        --------------------------------------------------
                        Ist aber nur so ein Tipp am Rande. :wink:

                        Kommentar


                        • #13
                          Was soll isset() denn für Fehlermeldungen werfen?

                          isset() prüft ob die übergebene Variable ungleich NULL ist. Das kann nichtmal nen Warning oder ne Notice werfen. Wenn eine Funktion keine Fehlermeldung provozieren kann, dann isset()

                          Kommentar


                          • #14
                            wenn man empty nimmt, muss man bedenken, dass bei einem variablenwert von 0 es zu fehlern kommen kann

                            (!isset = false, empty = true)

                            und isset wirft bei mir keine Fehlermeldungen. Nur wenn man error_reporting E_ALL an hat und man das isset vergisst, kommt ne variablenfehlermeldung. Das aber normal

                            Kommentar


                            • #15
                              Verwechsel nicht 0 und NULL :P
                              empty() wende ich nur auf deklarierte Variablen an.

                              Kommentar

                              Lädt...
                              X