Das Problem mit der Null

Hi Community,

ich weiß dieses Problem steht wahrscheinlich in einem Sticky, kann es aber nicht finden!

Hab bereits Beiträge auf der offiziellen PHP Seite gelesen, aber irgendwie klappen die auch nicht.

Aufjedenfall, ich lese eine Wert über eine GET Abfrage aus, dieser hat manchmal den Wert NULL, also oben in der URL steht dann sowas: index.php?id=90&cartid=0

Wenn ich diesen Wert auslesen will, will ich ihn auch als Null interpretieren, sprich ich will eine Funktion die diesen Wert berücksichtigt!

PHP:
empty($_GET['cartid'])
gibt bekanntlicherweise true zurück!
PHP:
isset($_GET['cartid'])
gibt komischerweise auch dann true zurück wenn nichts übertragen wird, sprich wenn die URL so aussieht: index.php?id=90

Ich bin am verzweifeln!
 
PHP:
isset($_GET['cartid'])
gibt komischerweise auch dann true zurück wenn nichts übertragen wird, sprich wenn die URL so aussieht: index.php?id=90

Das möchte ich anzweifeln :-)

Ansonsten:
du kannst das per is_numeric() prüfen, ob die Variable numerisch ist oder ein numerisch interpretierierbarer String...das findet auch die 0, welche ja von empty() ignoriert wird:
Code:
$cartid = (isset($_GET['cartid']) && is_numeric($_GET['cartid'])) 
            ? $_GET['cartid'] 
            : NULL;

Falls $cartid noch auf Ganzzahl geprüft werden soll, ginge das so:
Code:
$cartid = (isset($_GET['cartid']) 
              && is_numeric($_GET['cartid']) 
                  && is_integer($_GET['cartid']*1)) 
            ? $_GET['cartid'] 
            : NULL;
 
Zuletzt bearbeitet:
Du hast hier ein paar Sachen durcheinander gebracht. Wenn du auf $_GET['cartid'] zugreifst, dann bekommst du ein String zurückgeliefert.

Code:
null != 0

Code:
$bla = 0;
isset($bla);

Das ergibt trotzdem ein true, da die Variable ja mit 0 (einer Integer Zahl) belegt ist.
 
Zurück