... find ich doof. Wer noch? [php Vergleichsoperator]
    
Baba
    
    
      
    
  - php
 
$var = "";  
if(is_null($var)) echo "is null<br>";  
  
$var = null;  
if($var == "") echo "is empty string<br>";
erzeugt:
is empty string
statt
Cheers,
Baba
[latex]Mae govannen![/latex]
$var = "";
if(is_null($var)) echo "is null<br>";
$var = null;
if($var == "") echo "is empty string<br>";
>   
> erzeugt:  
> > is empty string  
> statt  
> >  
  
Tja, mit dem passenden (typvergleichenden) Operator wäre das nicht passiert ;)  
  
  
Stur lächeln und winken, Männer!  
Kai  
-- 
`var jQuery = $(hit);`{:.language-javascript}  
Wir sind die Schlumpf. Widerschlumpf ist schlumpflos. Wir werden Sie einschlumpfen.  
  
[SelfHTML-Forum-Stylesheet](http://selfhtml.knrs.de/#h_stylesheet)  
  erzeugt:
is empty string
statt
Vorweg, null,"",0, unter Umständen auch "0" wird von PHP teilweise als false interpretiert.
Bei deinem Beispiel ist es so, dass 2 verschiedene Datentypen vorliegen und PHP einen der beiden Werte umwandeln muss um vergleichen zu können.
Wenn du $var = null setzt und mit "" vergleichst, ist das der Fall. Um das zu umgehen müsstest du typsicher vergleichen, also den "==="-Operator verwenden.
Kleines Beispiel:
<?php  
	var_dump("",null,""==null,""===null,0,false,0==false,""==0,""===0);  
	if("0")  
		print "\n\"0\" wird als true interpretiert.";  
	else  
		print "\n\"0\" wird als false interpretiert.";  
?>
gibt folgendes aus:
string(0) ""  
NULL  
bool(true)  
bool(false)  
int(0)  
bool(false)  
bool(true)  
bool(true)  
bool(false)  
  
"0" wird als false interpretiert.
MfG
bubble
Tja, mit dem passenden (typvergleichenden) Operator wäre das nicht passiert ;)
Stimmt ja. Automatische Typumwandlung. This is not a bug, it's a feature.
Vielen Dank für den Hinweis euch beiden.
Cheers,
Baba
Tach!
Automatische Typumwandlung. This is not a bug, it's a feature.
Das ganze in Tabellenform: PHP type comparison tables
dedlfix.