kostenloser Webspace werbefrei: lima-city


0 = Leer verhindern...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    volnerius

    volnerius hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Verwende einfach den identisch oder nicht identisch Operator:
    if( $bla !== null ) // tu was wenn er nicht leer ist
  4. m******************r

    Probiers so:

    if(isset($var) && is_numeric($var) && intval($var) >= 0 && intval($var) <= 23)
    {
        //Do something
    }


    Lg
  5. 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
  6. Autor dieses Themas

    volnerius

    volnerius hat kostenlosen Webspace.

    Dann kommt aber wieder die Fehlermeldung, wenn die Varibale leer ist:
    Notice: Undefined index: close_hour
  7. m******************r

    Hast du meine Variante auch ausprobiert?
  8. Autor dieses Themas

    volnerius

    volnerius hat kostenlosen Webspace.

    Die Klappt auch nicht :wink:
  9. 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
  10. 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
  11. volnerius schrieb:
    ... Kommt eine Fehlermeldung(Notiz), falls die Varibael mal leer ist...
    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!

    lg
  12. 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
  13. hemiolos schrieb:
    volnerius schrieb:
    ... Kommt eine Fehlermeldung(Notiz), falls die Varibael mal leer ist...
    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!

    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
  14. coder-0x1 schrieb:
    hemiolos schrieb:
    volnerius schrieb:
    ... Kommt eine Fehlermeldung(Notiz), falls die Varibael mal leer ist...
    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!

    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 :)
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!