Mit isset auch null treffen

Divi

Erfahrenes Mitglied
Hi Leute
Folgendes Problem:
Wenn ich folgendes mache:

PHP:
$_REQUEST["1"] = false;
$_REQUEST["2"] = null;

und dann abfrage:

PHP:
isset($_REQUEST["1"]) { echo "xx ist gesetzt"; }
isset($_REQUEST["2"]) { echo "xx ist gesetzt"; }
isset($_REQUEST["3"]) { echo "xx ist gesetzt"; }

gibt er mir nur bei 1 n true zurück.

Wenn ich aber mit print_r($_REQUEST) mir das ausgeben lasse, gibt es nen Wert $_REQUEST["2"], der nur halt leer ist. ...
Gibt es sowas wie index_exists oder so? Ich brauch einfach ne Funktion, die auch true zurück gibt, wenn der value null ist ...

Danke euch!
 
schon klar...

null steht nicht für Null. PHP ist Englisch Null (0) gibt's nur in Deutschland. null bedeutet soviel wie nichts (leer)...
 
Danke - ich bin ja net doof - sowas weiß ich selber ...
Aber die Variable ist ja gesetzt - wenn sie auch leer ist - aber genau darauf kommt es an, denn wenn du sagst

PHP:
if  ($a == "") {
   echo "test";
}

gibt es nen Fehler, dass $a unbekannt ist, wenn du aber sagst

PHP:
$a = null
if  ($a == "") {
   echo "test";
}

dann ist $a initialisiert und der Fehler ist entschärft...
 
danke - hat mir weitergeholfen - weiß jetzt definitiv, dass es nicht geht, wie ichs vorhatte :) ... aber danke dir! - ist ne coole Tabelle!
 
tut es auch - das dumme an Empty ist nur leider, dass es auch true zurück gibt, wenn die Varibale nicht initialisiert wurde ... und dann bekomm ich immer trues ...
 
Leider kannst du nicht zwischen undefined und NULL unterscheiden, da alle Routinen für die beiden Werte das gleiche Ergebnis liefern.

Du kannst aber überprüfen, ob ein Key vorhanden ist:

PHP:
echo (in_array('test', array_keys($_REQUEST))) ? 'true' : 'false';

Diese Variante liefert auch true, wenn der Wert des Feldes NULL ist.




MfG. xxenon



Übrigens: Wenn du ein selbst definiertes Array verwenden willst, musst du natürlich vorher überprüfen, ob es Array gesetzt ist, da du sonst eine Fehlermeldung bekommst ^^
 
Nachtrag:


In PHP gibts dafür sogar schon eine fertige Funktion ^^:

PHP:
echo (array_key_exists('test', $_REQUEST)) ? 'true' : 'false';


MfG.
 
Zurück