6.8. Was ist der Unterschied zwischen isset() und einem Vergleich auf den Leerstring?Antwort von Georg Maaßif($var) evaluiert nur dann zu true, wenn $var keinen der folgenden Werte darstellt: false, 0, 0.0, "" oder "0", NULL, array() oder new stdClass. Alle diese Werte bedeuten false in ihrem jeweiligen Typ (Bool, Integer, Float, String, Null, Array, Object). if(isset($weiter)) evaluiert immer zu true, wenn $weiter nicht undefined ist. Im ersten Fall wird der Inhalt, im zweiten Fall die Existenz der Variablen bewertet. Ein ähnliches Problem tritt bei Vergleichen auf: if($var == false) evaluiert immer dann zu true, wenn $var einen der obigen Werte darstellt. PHP führt hier eine automatische Typenkonvertierung durch, wodurch die beiden Variablen als äquivalent angesehen werden. Diese Typkonvertierung kann mit den Vergleichsoperatoren === (drei Gleichheitszeichen) und !== vermieden werden. Der Vergleich === ist nur dann wahr, wenn die beiden Operanden den gleichen Typ und den gleichen Wert haben. |
||
6.8. Was ist der Unterschied zwischen isset() und einem Vergleich auf den Leerstring? http://www.php-faq.de/q/q-variable-testen.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |