2010-12-02 24 views
4

Pourquoi forme if déclarations comme ...Pour quelle raison commander une instruction if de cette façon?

if (null === $this->foo){...} 
if (0 === count($bar)){...} 

plutôt que ...

if ($this->foo === null){...} 
if (count($bar) === 0){...} 

Je l'ai remarqué dans le code d'un certain nombre de projets codeurs et que je respecte, mais je n » Je ne sais pas pourquoi ils le font de cette façon. Je le fais de la deuxième façon car il suit ma pensée "Si cette valeur est identique à nulle alors ..." alors que demander "Si nul est identique à cette valeur ..." me semble un peu moins évident. Alors pourquoi?

+5

Son appelé "yoda speak";) – KingCrunch

+0

@KingCrunch Je aime bien l'étiquette "Conditions Yoda" – tobyodavies

Répondre

16

Il est prévu de s'assurer que vous ne mettez pas accidentellement if (this-> foo = null) au lieu du double ==.

C'est une erreur qui PHP attrapera automatiquement pour vous

if (null = $foo) {} 

alors que c'est probablement une erreur (bien qu'il puisse être délibéré et utile parfois)

if ($foo = null) {} 

Ainsi, en commandant votre Dans ce cas, vous vous protégez contre l'attribution accidentelle d'une valeur au lieu de la comparer.

+2

Si je n'avais qu'un nickel chaque fois que je l'ai fait par accident * soupir * ... –

+0

Ouais ... et encore , Je ne le fais toujours pas de cette façon, même si je sais que je devrais: - / –