Page 1 sur 1
=== 0 dans php
Posté : 10 mars 2011, 11:37
par light86
bonjour j'ai trouvé ce code if (strpos($key, 'alain') === 0)
j'ai pas compris 3 fois =
merci
Re: === 0 dans php
Posté : 10 mars 2011, 11:43
par BaLiSTiK
Le == vérifie si deux valeurs sont identiques, mais avec un 3ième =, ça vérifie si le type des deux valeurs est bien aussi identique.
Regarde :
$a = '0';
$b = 0;
if ( $a == $b ){
echo 'meme valeur';
}
if( $a === $b) {
echo '<br>Meme valeur et meme type';
} else {
echo '<br>Meme valeur mais pas meme type -> ' . gettype($a) . ' - ' . gettype($b) ;
}
Le premier affichera bien "meme valeur".
Mais le second test, indiquera que le premier est de type string, et le deuxieme de type integer
Re: === 0 dans php
Posté : 10 mars 2011, 17:43
par AB
Quand on fait " if( ) " avec une comparaison "==", si le résultat à l'intérieur du if vaut 0 alors if retourne false, car de manière large, 0 est assimilé à false.
Donc particulièrement dans le code if (strpos($key, 'alain') === 0) on cherche à savoir si "alain" est en début de chaine, c'est à dire si l'expression est à la position 0 puisqu'on commence à compter à 0. Quand la condition est remplie le retour est donc 0 et pour éviter de le confondre avec false on utilise la comparaison stricte "===", sinon on pourrait pas faire de différence entre l'expression non trouvée et l'expression trouvée en position 0.
Re: === 0 dans php
Posté : 10 mars 2011, 17:53
par moogli
il me semble que null est aussi considéré comme 0 / false ?
@+
Re: === 0 dans php
Posté : 11 mars 2011, 11:05
par popy
La valeur numérique de null est 0, comme celle de false, mais null !== 0 / null !== false
Re: === 0 dans php
Posté : 12 mars 2011, 04:50
par AB
Oui et par ailleurs dans l'exemple qui nous intéresse strpos retournera soit une valeur numérique si l'occurrence est trouvée et sinon false mais jamais null.