Wo ist der unterschied zwischen
if($foo)
{
echo $foo;
}
und
if(isset($foo))
{
echo $foo;
}
ludden Gast |
Die erste if-Anweisung ist streng genommen lt. PHP falsch, obwohl von vielen PHP-Versionen bzw. "Webspaces" akzeptiert.Was sie machen weiß ich schon. Wollte nur wissen, obs einen unterschied macht. Dann mal vielen Dank für die Info.
Die zweite Anweisung ist richtig und wir überall akzeptiert. Bei manchen Providern würdest du mit der ersten Anweisung Fehlermeldungen bekommen, da es eigentlich keine korrekte Anweisung ist, es wird streng genommen ja keine Bedinungen überprüft. Beide Anweisungen stehen jedoch für das gleiche, es wird überprüft, ob die Variabel "$foo" existiert.
Also ich verstehe nicht warum die erste Abfrage falsch sein soll... (kann natürlich sein, dass einige Interpreter aus Sicherheitsgründen das nicht annehmen, da werden nämlich denke ich gerne Fehler gemacht)
PHP lehnt sich da doch sehr an C/C++ an...
Das Problem ist, dass die Bedingung if($foo) auch dann falsch ist, wenn $foo den Wert 0 oder den Wert false hat (weiß ich jetzt nicht, ob es NULL bei PHP gibt, sonst liefert sie da auch false zurück). Ich glaube, wenn es ein leerer String ist (also "" oder ''), wird auch false zurück geliefert (im Gegensatz zu C/C++).
if(isset($foo)) liefert nur false, wenn die Variable gar nicht existiert.
Also ich verstehe nicht warum die erste Abfrage falsch sein soll... (kann natürlich sein, dass einige Interpreter aus Sicherheitsgründen das nicht annehmen, da werden nämlich denke ich gerne Fehler gemacht)
PHP lehnt sich da doch sehr an C an...
Das Problem ist nur, dass die Bedingung if($foo) auch dann falsch ist, wenn $foo den Wert '0' oder den Wert 'false' hat (weiß ich jetzt nicht, ob es NULL bei PHP gibt, sonst liefert sie da auch false zurück). Ich glaube, wenn es ein leerer String ist (also "" oder ''), wird auch false zurück geliefert.
if(isset($foo)) liefert nur false, wenn die variable gar nicht existiert.
Die erste if-Anweisung ist streng genommen lt. PHP falsch, obwohl von vielen PHP-Versionen bzw. "Webspaces" akzeptiert.
<?php
if (myFunction() === true)
{
// do something
}
?>
Ich suche aber mal nach der Seite
Ich hab übrigens mal mit NULL ausprobiert...
also wenn ich der Variablen $var den Wert NULL zuweise, dann liefern BEIDE Abfragen false (also auch isset($var)).
Auf diese Weise kann man dann wohl also Variablen löschen.... wobei es dazu aber glaube ich auch ne Funktion gab.
Das zeigt meines Erachtens vielmehr, dass die Frage gar nicht so banal ist. Im Gegenteil: was im Kleinen banal erscheint, hat im größeren Kontext schon so manche Applikation versaut
Schonmal das hier gesehen?
http://www.blueshoes.org/en/developer/syntax_exam/
greez
JoSsiF
« Ihre Frage: Grafikformate | Eclipse » | ||