==/=== ??

Résolu
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 20 févr. 2007 à 11:39
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009 - 20 févr. 2007 à 19:13
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

vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
20 févr. 2007 à 11:53
Saell og blesuð

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

Vilhjálms Sigurðsdóttir aka Frëyjá
3
AkeluX Messages postés 113 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 9 mars 2007 2
20 févr. 2007 à 12:15
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
3
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 févr. 2007 à 13:05
Ok,

merci beaucoup.
0
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
20 févr. 2007 à 19:13
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 !

@++
0
Rejoignez-nous