2012-09-03 4 views

Répondre

4

De the manual:

Si vous comparez un numéro avec une chaîne ou la comparaison porte sur chaînes numériques, chaque chaîne est convertie en un nombre et la comparaison effectuée numériquement.

donc: ($i == $s) est le même que ($i == (int)$s) pour les valeurs que vous avez donné.

Utilisez === pour éviter le jonglage.

2

Lors de la comparaison d'une chaîne avec un entier à l'aide de ==, la chaîne tentera de former un entier.

0

La comparaison de chaînes à un int n'est pas recommandée. Vous devriez utiliser le === à la place qui vérifiera le même type de données ainsi que la même valeur.

0

PHP convertit la chaîne de caractères $ s en un entier lorsqu'il est comparé à un autre entier ($ i). Il fait essentiellement ce (bien, je ne sais pas ce qu'il fait en interne, mais il se résume à ceci):

if($i == (int) $s) 

Ce qui fait la déclaration vraie

2

Essayez cette

$s = '334rr'; 
$i = intval($s); 
if ($i == $s) { 
echo true; 
} else { 
    echo false; 
}