Variable ist leer aber nicht (int) 0 [Zahl: null] ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
art
bleiben
code
ersetzen
leere zeichenkette
leeren string
leeres array
null
richtiger vergleich
treffer
url
variable code
variable zwei
vergleich
wert code
wert zahl
zahl
zeichenkette
-
Hallo
wie kann ich eine Variable prüfen, ob wirklick "leer" ist und nicht doch den Wert (int) 0 [Zahl: null] hat ?
bei Prüfung empty() ist eine Variable mit dem Wert (int) 0 [Zahl: null] auch ein Treffer
$variable = 0;
if (empty($variable)) { $variable = 'n/a'; }
so wird mir auch der Wert 0 zu 'n/a' ersetzt
aber ich will den Wert (int) 0 [Zahl: null] nicht durh 'n/a' ersetzt haben,
also wenn $variable = 0; dann soll der Wert 0 [Zahl: null] bleiben,
nur wenn die Variable wirklich "Leer" ist, dann durch 'n/a' ersetzen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
plugboard schrieb:
Hallo
wie kann ich eine Variable prüfen, ob wirklick "leer" ist und nicht doch den Wert (int) 0 [Zahl: null] hat ?
bei Prüfung empty() ist eine Variable mit dem Wert (int) 0 [Zahl: null] auch ein Treffer
$variable = 0;
if (empty($variable)) { $variable = 'n/a'; }
so wird mir auch der Wert 0 zu 'n/a' ersetzt
aber ich will den Wert (int) 0 [Zahl: null] nicht durh 'n/a' ersetzt haben,
also wenn $variable = 0; dann soll der Wert 0 [Zahl: null] bleiben,
nur wenn die Variable wirklich "Leer" ist, dann durch 'n/a' ersetzen
if($variable == ""){ // zwei Anführungszeichen
// mach was
}
-
sixchat schrieb:
Vermutlich nicht, weil:
Meinst du das ?
if (!isset($variable)) { $variable = "n/a"; }
Gibt TRUE zurück, wenn var existiert einen von NULL verschiedenen Wert hat, andernfalls FALSE.
Zu
:empty()
Gibt FALSE zurück, wenn var einen nicht-leeren und von 0 verschiedenen Wert hat.
Also der Code der gesucht wird ist sowas in die Art:
Folgende Dinge zählen als nicht mit einem Wert belegt:
■"" (eine leere Zeichenkette)
■0 (0 als Integer)
■0.0 (0 als Fließkommazahl)
■"0" (0 als Zeichenkette)
■NULL
■FALSE
■array() (ein leeres Array)if(empty($variable) && ($variable != '0')) $variable = 'n/a';
-
Mal ganz blöd...
if($var == "") { echo "Variable ist void"; } else { echo "Variable hat ein Wert"; }
Bei
$var = ""; => Variable ist void
$var = 0; => Variable hat einen Wert
Beitrag zuletzt geändert: 10.5.2012 15:00:02 von trueweb -
Ein positiv ausfallender Vergleich mit einem leeren String bedeutet nicht, dass die Variable leer ist, sondern eben, dass die gefüllt ist. Und zwar mit einem leeren String oder etwas, das darauf passt. Ein richtiger Vergleich geht nicht mit
, sondern mit==
. Dementsprechend fällt der Vergleich dann auch negativ aus, wenn man die Variable mit einem leeren String vergleicht.===
@TE: Was du suchst, ist
. Schreibe einfachnull
.if($deineVariable === null) { [...] }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage