==/=== ?? [Résolu]

Signaler
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009
-
Bonjour,
je voudrais savoir quelle est la différence entre et ?

parce que lorsqu'on exécute le code suivant :

<?php
$test = 'TEST';
if($test==0)
    echo "\$test==0
";
echo "\$test vaut $test
";
?>

à l'écran il s'affiche :
$test==0
$test vaut TEST

alors qu'avec le code suivant :
<?php

$test = 'TEST';

if($test===0)

    echo "\$test===0
";

echo "\$test vaut $test
";

?>

à l'écran il s'affiche :
$test vaut TEST

peut-être que cette question a déjà été posée, mais les moteur de recherche ne marchent pas lorsque l'on tape == ===...

Merci de m'éclairer.

4 réponses

Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Voir la documentation :
http://fr.php.net/manual/fr/language.operators.comparison.php

Vilhjálms Sigurðsdóttir aka Frëyjá
Messages postés
113
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
9 mars 2007

Bonjour,



En résumé, compare les valeurs mais aussi le type des deux opérandes alors que se contente des valeurs convertis dans un type commun ... Il en va de même pour !== …



Dans votre cas, PHP va convertir votre variable $test en un entier (qui vaut 0) pour pouvoir le comparer avec le 0 !



Salutations,



AkeluX
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

Ok,

merci beaucoup.
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Hello

Petite astuce, lorsque tu regardes la valeur de retour d'une fonction (par exemple via php.net), certaines fonctions renvoient 2 types de valeurs, soit int soit FALSE. C'est a ce moment la que tu peut tester avec le ===  qui verifie le type et la valeur, pas seulement la valeur (comme l'a souligne AkeluX).

Exemple : mysql_num_rows() renvoi soit le nombre de resultats trouves lors d'une requete sql dans une table soit FALSE si il y a eu une erreur. Il est donc indispensable de tester si le resultat est soit 0, soit FALSE soit superieur a 0 (1, 2, 4, 6, 100 ect...)
Faire un
if ( !mysql_num_rows($Result) )
    echo 'Aucun resultat';

c'est ce qui s'appelle un abus de langage. Le script fonctionnera tres bien mais si tu veux intercepter une erreur precise, tu sera dans l'impossibilite de savoir si tu n'as aucune erreur et 0 resultat ou si tu as eu une erreur et que la fonction a echoue.
Pense bien a allez voir la doc que [auteurdetail.aspx?ID=551996 vilhjalms]
t'as indique, c'est tres utile !

@++