Announcement

Collapse
No announcement yet.

$_GET-Paramter vor Übergabe mit isset() prüfen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • $_GET-Paramter vor Übergabe mit isset() prüfen?

    Hallo zusammen,

    ich habe eine Frage zu $_GET Parametern.

    Ich übergebe in einem Skript sehr viele $_GET-Parameter an verschiedene Funktionen. Muss ich dafür vorher alle $_GET-Parameter im isset() testen, ob sie auch existieren? Oder kann ich die $_GET-Parameter auch ohne Prüfung übergeben?


    Beispiel


    Variante 1:

    $auto = new Auto();

    $auto->neueFarbe ( $_GET['farbe'] , $_GET['muster'] );


    Variante 2:


    $auto = new Auto();

    if ( isset ($_GET['farbe']) ) {
    $farbe = $_GET['farbe'];
    }
    else {
    $farbe = null;
    }

    if ( isset ($_GET['muster']) ) {
    $muster = $_GET['muster'];
    }
    else {
    $muster = null;
    }

    $auto->neueFarbe( $farbe , $muster );


    Variante 2 kommt mir aber sehr umständlich vor, weil ich ca. 10 GET-Parameter an Funktionen übergebe und für jeden Parameter die Abfrage und Zuweisung wie in Variante 2 durchführen müsste.


    Doch wenn ich die Parameter wie in Variante 1 übergebe bekomme ich eine PHP NOTICE wenn einer der GET-Parameter nicht übergeben wurde. (Einige der Parameter sind optional und werden deshalb nicht immer per GET übergeben)


    Hat jemand einen Tip wie man das Problem am besten lösen kann?

    Vielen Dank im Voraus,
    Grüße Melly

  • #2
    Du hast dir die Frage doch schon selbst beantwortet. Sicher muss eine Prüfung erfolgen
    Christian

    Comment


    • #3
      Hallo,

      danke für die Antwort! Habe es mir schon gedacht, aber es kommt mir so umständilch vor, jeden Parameter zu Prüfen und einer Variable zuzuweisen. Gibt es da vielleicht eine bessere Methode?

      Irgendwas wie Folgendes:

      $auto->neueFarbe ( only_if_isset($_GET['farbe']) );

      --> Das der $_GET-Parameter nur übergeben wird, wenn er existiert und ansonsten automatisch NULL übergeben wird? Ohne dass eine PHP-Notice auftritt...

      Danke,
      Grüße Melly
      Zuletzt editiert von melly; 23.01.2011, 13:11. Reason: Fehler

      Comment


      • #4
        Warum schreibst du dir die Methode nicht....
        Übergabeparameter sind die Variable und der Defaultwert
        Christian

        Comment


        • #5
          Das habe ich schon probiert, aber wenn ich einen $_GET-Parameter übergebe der nicht existiert, bekomme ich ja wieder eine PHP-Notice... Dachte da gibt es vielleicht eine Funktion von PHP. Die Abfrage mit isset($_GET['farbe']) wirft ja auch keine PHP-Notice wenn der $_GET-Parameter nicht existiert.

          Comment


          • #6
            Sowas hatte ich gemeint:


            $farbe = !empty( $_GET['farbe'] ) ? $_GET['farbe'] : NULL;

            $auto->neueFarbe( $farbe );

            Comment


            • #7
              Das ist doch kein Unterschied...lediglich in der Schreibweise des if
              Christian

              Comment


              • #8
                Hatte etwas gesucht, das die Prüfung und Zuweisung verkürzt, bin vorher nicht auf diese Schreibweise gekommen...

                Trotzdem danke für die Tips

                Grüße Melly

                Comment

                Working...
                X