0 = Leer verhindern...
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
brauchen
code
fehler
fehlermeldung
gleichen typ
identisch operator
implementierung
index
leerer string
notiz
problem
speicherplatz
string
url
vergessen
vermutung
wenigkeit
zahl
zeile
-
Hallo,
Ich habe ein Problem:
Ich will gerne eine Varibale überprüfen ob es eine Zahl(von 0-23) und nicht leer ist. Dabei gibt es allerdings ein Problem: Wenn ich mit empty() überprüfe ob es leer ist, wird 0 halt auch als Leer angesehen, wobei es in meinem Falle auch eine Zahl ist... Und wenn ich es nun mit is_numeric() überprüfe Kommt eine Fehlermeldung(Notiz), falls die Varibael mal leer ist...
Gibt es da eine Lösung? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Verwende einfach den identisch oder nicht identisch Operator:
if( $bla !== null ) // tu was wenn er nicht leer ist
-
Probiers so:
if(isset($var) && is_numeric($var) && intval($var) >= 0 && intval($var) <= 23) { //Do something }
Lg -
Es gibt in PHP die folgenden Operatoren:
=== : gleich und vom gleichen Typ !== : ungleich und vom gleichen Typ
dann nimmst du:
if( $variable !== "" )
Du überprüfst also ob das ein leerer String ist.
Die Zahl 0 hat als String ein Zeichen, ist also nicht leer.
Beitrag zuletzt geändert: 22.7.2011 21:40:20 von coder-0x1 -
Dann kommt aber wieder die Fehlermeldung, wenn die Varibale leer ist:
Notice: Undefined index: close_hour
-
Hast du meine Variante auch ausprobiert?
-
Die Klappt auch nicht
-
eine notice ist kein fehler im eigentlichen sinne,
wenn es trotzdem funktioniert, dann mach einfach ein @ davor, damit wird die ausgabe der notiz verhindert, ist zwaqr nicht die sauberste lösungs, aber wenns funktioniert xD -
Also ganz ehrlich? Für mich sieht das so aus, als ob du einen Arrayeintrag und nicht eine einzelne Variable testest. Der Unterschied ist der, dass bei einem leeren Arrayfeld, je nach Implementierung des Arrays, der Index gar nicht ausgelesen werden kann, weil das Feld nicht nur leer, sondern gar nicht vorhanden ist. Vielleicht hilft es dann
if (empty($array))
statt
if(empty($array[$index]))
zu prüfen. Lieg ich mit meiner Vermutung richtig oder habe ich da zuviel in die Notice hinein interpretiert?
Wenn ich Recht habe, dann brauchen wir vermutlich 2-3 Zeilen Orginalcode von dir um dir besser zu helfen, weil für eine passende Lösung brauchen wir dann den groben Arrayaufbau. Wenn nicht währe es trotzdem super ein paar Zeilen Code zu haben, vlt ergibt sich die Lösung dann durch draufschauen.
Beitrag zuletzt geändert: 22.7.2011 22:57:03 von alphara -
Variablen sollten IMMER vor Verwendung definiert werden. Das nur am Rande...
Zu deinem Problem... Wie wärs mit
if(array_key_exists('close_hour', $array))
0 wird übrigens nur als empty erkannt, wenn es sich um einen Integer handelt. Definierst du die Zahl als String, ist 0 nicht empty:
$num = (string)0;
bzw:
$num = '0';
oder
settype($nun, "string");
usw...
Beitrag zuletzt geändert: 23.7.2011 3:55:20 von fabo -
hemiolos schrieb:
volnerius schrieb:
fragt man sich bloß, warum ist eine variable MAL leer? MAL von vorbelegung gehört? außer meiner wenigkeit machen das noch ein-zwei bekloppte. es funzt!
... Kommt eine Fehlermeldung(Notiz), falls die Varibael mal leer ist...
lg
Ja, Vorbelegung ist sehr praktisch, ist auch in anderen Programmeirsprachen durchaus notwendig, weil dort Speicherplatz reserviert werden muss...
PHP verleitet aber dazu die Vorbelegung zu vergessen
Beitrag zuletzt geändert: 23.7.2011 13:58:11 von coder-0x1 -
coder-0x1 schrieb:
hemiolos schrieb:
volnerius schrieb:
fragt man sich bloß, warum ist eine variable MAL leer? MAL von vorbelegung gehört? außer meiner wenigkeit machen das noch ein-zwei bekloppte. es funzt!
... Kommt eine Fehlermeldung(Notiz), falls die Varibael mal leer ist...
lg
Ja, Vorbelegung ist sehr praktisch, ist auch in anderen Programmeirsprachen durchaus notwendig, weil dort Speicherplatz reserviert werden muss...
PHP verleitet aber dazu die Vorbelegung zu vergessen
Bei guten Frameworks denkt man dran. Denn sonst gibts Fehler :) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage