karlo: variable leer?

Hallo,

if ($var == "") checkt ob eine variable leer ist
if ($var) genauso oder nicht?

karlo

  1. Hi,

    if ($var == "") checkt ob eine variable leer ist

    nein, ob ihr Inhalt mit einem Leerstring gleichwertig ist.

    if ($var) genauso oder nicht?

    Das prüft, ob $var im Boole'schen Sinne wahr ist. Steht beispielsweise die Zahl 0 drin, ist dem nicht so.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      if ($var)
      Das prüft, ob $var im Boole'schen Sinne wahr ist. Steht beispielsweise die Zahl 0 drin, ist dem nicht so.

      Was zählt da noch dazu ausser 0?

      karlo

      1. Hi,

        Das prüft, ob $var im Boole'schen Sinne wahr ist. Steht beispielsweise die Zahl 0 drin, ist dem nicht so.
        Was zählt da noch dazu ausser 0?

        alles was <> true ist

        MfG

        1. alles was <> true ist

          und das ist?

          karlo

          1. Hi,

            alles was <> true ist
            und das ist?

            pass auf. wenn du
            $var = true;
            machst passiert wenn du

              
            if($var)  
            {  
            // Das hier  
            }  
            
            

            machst du $var = /* Irgend was anderes */ ;
            passiert

              
            if($var)  
            {  
            // nicht das  
            }  
            else  
            {  
            // sondern das hier  
            }  
            
            

            Alle fragen geklärt?

            MfG

            1. ne meine frage bezog sich auf "zb. 0"

              wenn der wert $var=0 sei, wäre if ($var) false
              oder wenn $var="".
              und was noch?

              karlo

            2. Hi!

              machst du $var = /* Irgend was anderes */ ;
              passiert

              if($var)
              {
              // nicht das
              }
              else
              {
              // sondern das hier
              }

                
              und warum liefert dann  
              ~~~php
              <?php  
              $var = "foo";  
              if($var){  
                echo "foo";  
              }  
              else{  
                echo "bar";  
              }  
              ?>
              

              nicht bar, sondern foo zurück?

              Gruß

              Martin

          2. Huhu Karlo

            alles was <> true ist
            und das ist?

            dort steht es ausführlich

            http://www.php.net/manual/en/language.operators.comparison.php
            http://www.php.net/manual/en/types.comparisons.php

            Viele Grüße

            lulu

            --
            bythewaythewebsuxgoofflineandenjoytheday
        2. Hi Daniel,

          Was zählt da noch dazu ausser 0?
          alles was <> true ist

          Nein, das stimmt nicht. Andersrum wäre die Aussage wenigstens beinahe richtig.
          Alle Ausdrücke, die bei der Auswertung entweder den numerischen Wert 0 oder einen leeren String ergeben, gelten bei boolescher Betrachtung als false.
          Alles, was _nicht false_ ist, gilt als true.

          Beispiel für Ausdrücke, die false ergeben:
             $x*0 > 40            $x*0 ergibt immer den Wert 0
             ($x*0) > 40          0 ist nie größer 40 ;)
             ""                   Leerstring
             ($u<4) && ($u>8)     ($u kann nicht gleichzeitig kleiner 4 und größer 8 sein)
          Beispiel für Ausdrücke, die true ergeben:
             17 + 4
             $str . "ung"
             isset($var)          wenn var tatsächlich definiert ist
             !false

          Noch Fragen?  :)
          Ciao,

          Martin

          1. echo $begrüßung;

            Noch Fragen?  :)

            Ja, euer Ehren. Was ist mit

            • null
            • "0"
            • "00"
            • " 0"

            und wenn $var = null;

            • isset($var)
            • isnull($var)

            ?

            echo "$verabschiedung $name";

            P.S. var_dump() ist eine sehr nützliche Funktion in solchen Fällen.

            1. Hallo,

              Noch Fragen?  :)
              Ja, euer Ehren. Was ist mit

              • null
              • "0"
              • "00"
              • " 0"

              Zitat:

              ... die bei der Auswertung entweder den numerischen Wert 0 [...] ergeben, ...

              Bis auf "null" fallen deine oben genannten Beispiele in diese Kategorie. Der Wert "null" ist ein Sonderfall, wird aber bei booleschen Ausdrücken auch zu 0 interpretiert.

              und wenn $var = null;

              • isset($var)
              • isnull($var)

              Gute Frage.
              Bei isset() bin ich mir nicht einmal ganz sicher, aber bei isnull ergibt sich die Antwort doch schon aus dem Namen der Funktion.

              P.S. var_dump() ist eine sehr nützliche Funktion in solchen Fällen.

              Kannte ich noch nicht, werde ich mir aber merken und bei Gelegenheit mal probieren. Danke!

              So long,

              Martin

              1. echo $begrüßung;

                • "0"
                • "00"
                • " 0"

                Zitat:

                ... die bei der Auswertung entweder den numerischen Wert 0 [...] ergeben, ...
                Bis auf "null" fallen deine oben genannten Beispiele in diese Kategorie.

                Na dann probier das besser noch mal...

                echo "$verabschiedung $name";

  2. Hallo karlo!

    Für dich dürften die Funktionen isset() und empty() interessant sein.

    Gruß

    Martin