tdoescher
Goto Top

Ist NULL das gleiche wie FALSE?

Hallo,

meine Frage ist sehr einfach, ist NULL das gleiche wie FALSE?

Content-Key: 134352

Url: https://administrator.de/contentid/134352

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 32067
32067 Jan 26, 2010 at 08:19:24 (UTC)
Goto Top
Einfache Antwort: Nein.

http://de.wikipedia.org/wiki/Nullwert

Als Nullwert (kurz NULL, NIL oder ()) bezeichnet man in der Informatik einen Zustand, der das Fehlen eines Wertes anzeigen soll. Nach Edgar F. Codd unterscheidet man zwei Arten von NULL: die Abwesenheit eines Wertes, weil keiner existiert, oder die Abwesenheit, da man den Wert (noch) nicht kennt. Ein Nullwert steht für die Abwesenheit eines Wertes, ein Nullwert ist aber gleichzeitig ein Wert.

Der Nullwert ist verschieden von dem Wert '' (eine leere Zeichenkette) oder der Zahl 0, da diese einen Wert, also eine Information repräsentieren.
Member: tdoescher
tdoescher Jan 26, 2010 at 08:23:27 (UTC)
Goto Top
Also ist dieses hier "var $wert = NULL;" nur schonmal eine deklaration, bzw. eine bekanntgabe einer Variabel!?

Und das "$frage= isset($wert);" ergiebt false!?
Member: Cubic83
Cubic83 Jan 26, 2010 at 09:00:04 (UTC)
Goto Top
Hallo,

ich würde mal sagen isset($wert) ergibt true weil die Variable definiert ist auch gesetzt wurde. Nur halt mit NULL. Habe gerade keine Möglichkeit das zu testen.

mfG
Member: dog
dog Jan 26, 2010 at 09:01:28 (UTC)
Goto Top
meine Frage ist sehr einfach, ist NULL das gleiche wie FALSE?

Nö, warum sollte es sonst unterschiedlich heißen?

NULL ist ein gesonderter Zustand.

Und das "$frage= isset($wert);" ergiebt false!?

Genua. So steht es auch in der Dokumentation: http://de2.php.net/isset

Determine if a variable is set and is not NULL.

PHP hat ein eigenes Verhältnis zu NULL: Jede nicht vorhandene Variable hat NULL als Wert, trotzdem ist NULL ein konkreter Wert für vorhandene Variablen...
Member: Cubic83
Cubic83 Jan 26, 2010 at 09:12:25 (UTC)
Goto Top
Interessant.

Mal wieder was dazu gelernt..
Member: Privateer3000
Privateer3000 Jan 26, 2010 at 09:53:10 (UTC)
Goto Top
Prinzipiell ist es so:
False ist ein Boolscher,also logischer Wert.
NULL ein integerer, also Variabler Wert. Kann also auch Leer(null) sein.
Außnahmen bilden zB Datenbanken die statt True/False 0/1 als Bitwert führen.
Member: nxclass
nxclass Jan 26, 2010 at 10:04:44 (UTC)
Goto Top
meine Frage ist sehr einfach
die Antwort auch: !==

echo (false == null) ? 'true' : 'false' . "\n";  
echo (false === null) ? 'true' : 'false' . "\n";  
Member: dog
dog Jan 26, 2010 at 10:14:44 (UTC)
Goto Top
die Antwort auch

Nein, die ist sogar noch einfacher:

var_dump(false == null);
var_dump(false === null);

face-wink

Allerdings sollte man auch noch begründen warum jetzt beim ersten true rauskommt:
PHP kann Datentypen ineinander umwandeln und wenn man == benutzt wird es das auch machen.
In dem Fall sind 0,false,null,'' (leerer String) und noch ein paar andere identisch...