Ankündigung

Einklappen
Keine Ankündigung bisher.

Verzweigung kürzen

Einklappen

Neue Werbung 2019

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

  • Verzweigung kürzen

    Hi,
    kann mir bitte jemand sagen, ob man folgende Verzweigung kürzen kann?
    Es dreht sich um eine Seite, die ohne id aufgerufen (www.domain.de/index.php) wird und auf der Seite kann man die Ausgabe über ein Menü ändern, da werden dann die ids übergeben (www.domain.de/index.php?id=1).

    PHP-Code:
    if (isset($_GET['id'])) {
     
    $var 'anderer Name';
    } else {
    $var 'Name';

    Gekürzt. So in Ordnung?
    PHP-Code:
    $var 'Name';
    if (isset(
    $_GET['id'])) {
    $var 'anderer Name';


  • #2
    Kann man so auch machen, finde ich jedenfalls. Es funktioniert doch...

    Kommentar


    • #3
      noch kürzer:
      Code:
      $var = isset($_GET['id']) ? 'anderer name' : 'Name';
      Ob man das verwendet ist Geschmackssache. macht den Code evtl. etwas unleserlicher, aber für das initialisieren von Variablen mach ich das gerne mal:
      Code:
      $id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
      für ids (numerische Werte) bietet sich auch max() an:
      Code:
       $id = max(0, $_GET['id']);

      Kommentar


      • #4
        Zitat von Agrajag
        für ids (numerische Werte) bietet sich auch max() an:
        Code:
         $id = max(0, $_GET['id']);
        Gibts max() auch für Buchstaben? So das nur einer oder vielleicht drei Buchstaben zugelassen werden?

        Kommentar


        • #5
          ne die funktion max geht nur auf Zahlen

          um die länge von Strings zu überprüfen kannst du
          PHP-Code:
           strlen( ) 
          verwenden.

          um sie dann "abzuschneiden" kannst du die funktion
          PHP-Code:
          substr$stringStart, [Ende] ); 
          verwenden.

          Kommentar


          • #6
            Also deine Version ganz oben verwende ich am liebsten. Und mit Buchstaben könnte man sowas basteln:

            PHP-Code:
            <?php
            $id 
            'a';
            if (
            in_array($_GET['id'], array('b''c''tufftuff')))
                
            $id $_GET['id'];
            ?>

            Kommentar


            • #7
              Wenn ich das Array aber z.B. mit 50 Werten voll packe, geht das nicht auf kosten der Geschwindigkeit?

              Kommentar


              • #8
                Zitat von tomtaz
                ne die funktion max geht nur auf Zahlen
                Wo hast den das her?
                Zitat von [url=http://de3.php.net/manual/de/function.max.php
                PHP:max - Manual[/url]]mixed max ( mixed $value1 , mixed $value2 [, mixed $value3... ] )
                Kannst ja selber mal testen:
                PHP-Code:
                <?php
                echo max('abcd''defg''xy''xzab');
                ?>

                Kommentar


                • #9
                  Zitat von tayke
                  Wenn ich das Array aber z.B. mit 50 Werten voll packe, geht das nicht auf kosten der Geschwindigkeit?
                  Wenn du 50 verschiedene Werte hast dann kannst du auch gerne 50 verschiedene IF-Abfragen machen. Aber ob damit die Performance besser wird ... also "in_array" mag nicht die schnellste Funktion sein aber sag mir wie man einfacher eine white-List von 50 verschiedenen Einträgen überprüft.

                  Kommentar


                  • #10
                    Re: Verzweigung kürzen

                    Zitat von tayke
                    PHP-Code:
                    if (isset($_GET['id'])) {
                     
                    $var 'anderer Name';
                    } else {
                    $var 'Name';

                    Gekürzt. So in Ordnung?
                    PHP-Code:
                    $var 'Name';
                    if (isset(
                    $_GET['id'])) {
                    $var 'anderer Name';

                    Um solche Kleinigkeiten solltest du dich nicht kümmern ..

                    Aber du kannst das ganz einfach selbst überprüfen:
                    ID gesetzt:
                    Skript 1:
                    Funktionsaufruf + Bedingungsprüfung + Zuweisung
                    Skript 2:
                    Zuweisung + Funktionsaufruf + Bedingungsprüfgung + Zuweisung
                    Gewinner: Skript 1


                    ID nicht gesetzt:
                    Skript 1:
                    Funktionsaufruf + Bedingungsprüfung + Zuweisung
                    Skript 2:
                    Zuweisung + Funktionsaufruf + Bedingungsprüfung
                    Gewinner: Unentschieden

                    Und hilft dir das weiter? Neuzuweisungen dauern vermutlich länger, als reines überschreiben - ist das in PHP wirklich so .. weiß mans? Keine Ahnung?! Dann lieber an anderen Kriterien festhalten: Lesbarkeit!

                    Kommentar


                    • #11
                      Zitat von RaZoR
                      Wenn du 50 verschiedene Werte hast dann kannst du auch gerne 50 verschiedene IF-Abfragen machen.
                      Das würde ich eigentlich nicht wollen, nein.

                      Zitat von RaZoR
                      Aber ob damit die Performance besser wird ... also "in_array" mag nicht die schnellste Funktion sein aber sag mir wie man einfacher eine white-List von 50 verschiedenen Einträgen überprüft.
                      Ja, ich kenn da keine Alternative.

                      Zitat von Zergling
                      Um solche Kleinigkeiten solltest du dich nicht kümmern ..
                      Stimmt natürlich. Ich lern da aber auch immer wieder was drauß für andere Sachen.

                      Zitat von Zergling
                      ... Und hilft dir das weiter? ...
                      JA! Danke!

                      Kommentar

                      Lädt...
                      X