if-else - kürzere Schreibweise bei gleicher Variable?

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

  • if-else - kürzere Schreibweise bei gleicher Variable?

    Hallo Forum,

    gibt es für folgendes eine kürzere Schreibweise, die die redundante Nennung von $var vermeidet?
    PHP-Code:
    if($var === 'hello' || $var === 'world'
    Danke & Grüße,
    Erik

  • #2
    switch()
    Gruss
    H2O

    Kommentar


    • #3
      PHP-Code:
      if(in_array($var, array('hello''world'), true)) 
      Und was soll das nutzen?

      Edit: Ach ja, Typenvergleich
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        Vielen Dank für die schnellen Antworten. Lösungen per switch oder array sind klar, aber die verkürzen den Code ja erst bei deutlich mehr möglichen Werten als nur 2. Ich dachte an etwas im Sinne von, mal ganz blöd geschrieben
        PHP-Code:
        if($var === ('hello' || 'world')) 
        (daß das nicht geht ist klar ;-))

        Kommentar


        • #5
          Dann gibt es keine kürzere Schreibweise!

          Kommentar


          • #6
            Der Interpreter wird intern eh wieder auf $var referenzieren. Einen Performancevorteil bringt das also nicht. Und wenn du eh nur zwei oder wenige Werte hast, wird das also auch nicht im Quellcode übersichtlicher.

            OffTopic:
            Ich würde im übrigen von meinem Vorschlag im Produktiveinsatz abraten!
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Alles klar, vielen Dank Euch allen!

              Kommentar


              • #8
                OffTopic:
                Original geschrieben von unset
                Ich würde im übrigen von meinem Vorschlag im Produktiveinsatz abraten!
                Ich nicht.

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  OffTopic:
                  Überzeug dich selbst ...

                  PHP-Code:
                  <?php
                      
                  for($j 0$j 100$j++) {
                          
                  $start microtime(true);
                          
                          for(
                  $i 0$i 100000$i++) {
                              
                  $var 'hallo';
                              
                              if(
                  $var === 'hallo1' 
                                      
                  OR
                                   
                  $var === 'hallo2'
                                    
                  OR
                                   
                  $var === 'hallo'
                                  
                  ) {
                                  
                  // do something
                              
                  }
                          }
                          
                          
                  $end microtime(true);
                          
                  $or[] = $end-$start;
                          
                          
                  $start microtime(true);
                          
                          for(
                  $i 0$i 100000$i++) {
                              
                  $var 'hallo';
                              
                              if(
                                      
                  in_array($var, array(
                                                                                      
                  'hallo1'
                                                                                      
                  'hallo2'
                                                                                      
                  'hallo3'), 
                                                                      
                  true)
                                  ) {
                                  
                  // do something
                              
                  }
                          }
                          
                          
                  $end microtime(true);
                          
                  $inarray[] = $end-$start;
                      }
                      
                      foreach(
                  $or as $value) {
                          
                  $complete += $value;
                      }
                      
                      echo 
                  "<pre>";
                      
                      echo 
                  "Or:         "$complete count($or);
                      echo 
                  "<br />";
                      
                      
                  $complete 0;
                      
                      foreach(
                  $inarray as $value) {
                          
                  $complete += $value;
                      }
                      
                      echo 
                  "In Array:     "$complete count($inarray);
                      echo 
                  "<br />";
                  ?>

                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    Ich würde im übrigen von meinem Vorschlag im Produktiveinsatz abraten!
                    So direkt hinschreiben wie du es machst, vielleicht. Aber wenn Daten bereits als Array vorliegen, ist in_array durch aus legitim! Oder wenn die möglichen Werte so viele werden, dass ein if zur Abfrage der einzelnen Werte zu unübersichtlich ist, würde ich auch in_array verwenden!

                    Kommentar


                    • #11
                      Original geschrieben von PHP-Desaster
                      Oder wenn die möglichen Werte so viele werden, dass ein if zur Abfrage der einzelnen Werte zu unübersichtlich ist, würde ich auch in_array verwenden!
                      Eben.
                      Meine Code-Lesbarkeit hat Vorrang vor jeglicher Performance.

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        switch() ist auch übersichtlich, performance-mässig aber sehr viel näher bei der or-Variante.
                        @unset
                        Bau doch das mal in dein Messscript ein:
                        PHP-Code:
                        switch($var){
                            case 
                        'hallo1':
                            case 
                        'hallo2':
                            case 
                        'hallo':
                                        
                        // do something
                                        
                        break;

                        Gruss
                        H2O

                        Kommentar


                        • #13
                          Funktioniert natürlich nicht die Bohne mit dynamischen Vergleichsdaten!

                          Kommentar


                          • #14
                            Original geschrieben von PHP-Desaster
                            Funktioniert natürlich nicht die Bohne mit dynamischen Vergleichsdaten!
                            Warum nicht?
                            Gruss
                            H2O

                            Kommentar


                            • #15
                              Original geschrieben von PHP-Desaster
                              Funktioniert natürlich nicht die Bohne mit dynamischen Vergleichsdaten!
                              Bedingt, du kannst auch Variablen als Fälle angeben.
                              [FONT="Helvetica"]twitter.com/unset[/FONT]

                              Shitstorm Podcast – Wöchentliches Auskotzen

                              Kommentar

                              Lädt...
                              X