54 votes

PHP is_null() et ==null

En PHP, quelle est la différence entre is_null et ==null en PHP ? Quelles sont les qualifications pour que les deux soient vrais ?

67voto

Rocket Hazmat Points 87407

is_null est identique à === null . Les deux renvoient vrai lorsqu'une variable est null (ou non définie).

Notez que j'utilise === et non == . === compare le type ainsi que la valeur.

63voto

Daniel Ribeiro Points 3546

Pour mieux comprendre :

 $a = null;
$b = 0;

is_null($a) // TRUE
$a == null  // TRUE
$a === null // TRUE
is_null($b) // FALSE
$b == null  // TRUE
$b === null // FALSE

13voto

keithhatfield Points 3263

Il y a quelques très bons graphiques sur le site php.net qui montrent comment différentes valeurs réagissent :

Comparaison des types - php.net

5voto

WebolizeR Points 339

Vous pouvez vérifier la comparaison entre is_null() et null === $var

Bonne comparaison entre deux

5voto

user437797 Points 158

===null est recommandé par Rasmus Lerdorf, l'inventeur de PHP. Rasmus dit que le test de null est plus rapide que le test de isset . Sa recommandation est une raison suffisante pour examiner sérieusement la différence. La différence serait significative si vous aviez une petite boucle passant par le même code des milliers de fois dans la même requête de page Web.

UPD : quelques tests de vitesse pour is_null et comparaison stricte :

 PHP 5.5.9
is_null - float(2.2381200790405)
===     - float(1.0024659633636)

PHP 7.0.0-dev
is_null - float(1.4121870994568)
===     - float(1.4577329158783)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X