Trobi: Datentyp von GET/POST-Variabeln

Hallo.

Kann man POST und GET-Daten einfach so abfragen:

if($_GET['abc']==15)

oder muss man die Zahl als String behandeln?

if($_GET['abc')=="15")

Oder vereinfacht ausgedrückt: Welchen Datentyp haben die Variabeln, die mir von POST und von GET übermittelt werden?

MfG
Trobi

  1. Hallo,

    Kann man POST und GET-Daten einfach so abfragen:

    if($_GET['abc']==15)

    oder muss man die Zahl als String behandeln?

    if($_GET['abc')=="15")

    Du kannst sicherlich außer PHP noch eine Programmiersprache, oder?

    Also: In PHP gibt es keine Variablentypen. Man kann eine Zahl als String oder als int behandeln, einen Unterschied macht das nicht.

    Probier mal aus:

      
    echo "23" + 42;  
    
    

    MfG

    --
    How long? Not long! 'Cause what you reap, is what you sow!!!
    SELF forever
    Mein Selfcode: ie:% br: fl:| va:) ls:[ fo:| rl:( n4:~ de:> ss:) ch:| js:| mo:| sh:( zu:(
    1. Hello,

      Also: In PHP gibt es keine Variablentypen. Man kann eine Zahl als String oder als int behandeln, einen Unterschied macht das nicht.

      das ist so nicht ganz richtig. Vergleichsoperatoren etc. führen nur automatische Umwandlungen durch. Nichts desto trotz bietet auch PHP so etwas wie typ-gebundene Vergleichsoperatoren an.
      Was die Ausgangsfrage angeht ist es allerdings in der Tat zunächst mal belanglos, ob gegen 42 oder "42" verglichen wird.

      MfG
      Rouven

      --
      -------------------
      Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
  2. Moin,

    Kann man POST und GET-Daten einfach so abfragen:
    if($_GET['abc']==15)

    oder muss man die Zahl als String behandeln?
    if($_GET['abc')=="15")

    die Typtreue ist in PHP nur sehr schwach ausgeprägt. Das heißt, PHP kennt zwar den Unterschied zwischen Strings und numerischen Werten, wandelt die Ausdrücke aber implizit automatisch um. Wahrscheinlich ist also, dass beide deiner Formulierungen das erwartete Ergebnis haben - es sei denn, du vergleichst die zwei Ausdrücke mit dem Identitäts-Operator '===', bei dem auf Wert- und Typgleichheit überprüft wird.

    Oder vereinfacht ausgedrückt: Welchen Datentyp haben die Variabeln, die mir von POST und von GET übermittelt werden?

    Grundsätzlich erstmal String. Will man sie als numerische Werte verwenden und ganz sichergehen (oder sehr ordentlichen Code schreiben), dann sollte man sie explizit umwandeln.

    So long,
     Martin

    --
    Die letzten Worte des Polizisten:
    Ich hab mitgezählt: Sechs Schuss, jetzt hat er keine Munition mehr!