Mike: PHP: Für die Funktion empty ist das Zeichen 0 empty

Moin @ all,

wie das Thema schon sagt: zur Info

Ich war beinahe am verzweifeln, da icg die Funktion (in PHP) empty falsch gedeutet hatte. Aber wer lesen kann ist klar im Vorteil.

Für mich war die Funktion "empty" eine Abfrage auf einen leeren String. Dann mußte ich feststellen das auch bei Eingabe von "0" die
funktion empty ein true zurück liefert. AUTSCH

Also, damit es Euch nicht auch so geht wie mir.

$x=0;
ergibt bei

if ( empty ($x) )

eine TRUE

0 = leer ( Und so steht es auch in der Anleitung )

Die Abfrage auf ein Formularfeld, wo auch 0 güötig ist abe nicht leer
muss also heißen:

if ( $x == '' )

FALSE

In diesem Sinne

Gruß
Mike

--
Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
  1. Hello,

    das machen selbst teure Web-Agenturen falsch, die für die Regierung oder Wirtschaftsverbände Umfrageformulare herstellen. Das von Dir beabsichtigte Ergebnis bekommst Du eben nur mit

    if(isset($var) and strlen(trim($var))>0)

    denn meistens sind Leerzeichen oder Zeilenumbrüche doch auch keine gültige Eingabe

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Moin Tom,

      das machen selbst teure Web-Agenturen falsch, die für die Regierung oder Wirtschaftsverbände Umfrageformulare herstellen. Das

      so is das. Einen guten Programmierer zeichnet es aus, den DAU auf seinen Fehler aufmerksam zu machen und ihn auf das fehlerhafte Feld zu lenken.

      Leider wird hier sehr schludrig gearbeitet (Faulheit?) und natürlich ist man als Programmierer "Betriebsblind"

      Jedenfalls hatte mich die "empty Erkenntnis" Tage gekostet und ich hoffe der Beitrag kann jemandem im Archive helfen.

      Gruß
      Mike

      --
      Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
  2. Moin!

    Ich war beinahe am verzweifeln, da icg die Funktion (in PHP) empty falsch gedeutet hatte. Aber wer lesen kann ist klar im Vorteil.

    Richtig. Die Doku sagt:
    "Diese Funktion liefert TRUE, wenn eine Variable nicht definiert, leer oder gleich 0 ist, ansonsten FALSE."

    Die Abfrage auf ein Formularfeld, wo auch 0 güötig ist abe nicht leer
    muss also heißen:

    if ( $x == '' )

    empty hat außerdem den Nachteil, dass man es nur direkt auf Variablen anwenden kann, aber nicht auf Ausdrücke.

    empty($var1.$var2) ist verboten.

    - Sven Rautenberg

    1. Moin Sven,

      empty($var1.$var2) ist verboten.

      Danke für deine Ergänzungen. Es ist unglaublich was man hier alles lernen kann ( immer noch ) und wer Google bedienen kann, hat schon gewonnen.

      Gruß
      Mike

      PS: Sorry für die ersten Rechtschreibfehler, ich gelobe Bezerung :-)

      --
      Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
    2. empty($var1.$var2) ist verboten.

      böse böse böse, warum?
      btw das braucht eh keiner

      1. Hello hm,

        kennst Du die Gepflogenheiten hier zum Thema Begrüßung und Verabschiedung?
        Die brauchen wir nämlich trotzdem ;-)

        empty($var1.$var2) ist verboten.
        böse böse böse, warum?
        btw das braucht eh keiner

        Wenn man eine Anzahl von Parametern hat, von denen keiner fehlen darf, dann ist es schon mal praktisch, alle auf einmal zu überprüfen. Wie würdest DU das dann machen?

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau