L'opérateur = permet d'assigner une valeur à une variable.
$nom = 'Annie';
Attention de ne pas le confondre à l'opérateur == qui permet de comparer deux valeurs.
if ( $valeur == 30 ) {
...
}
Si, par mégarde, vous ne mettez qu'un signe = pour effectuer une comparaison, le programme ne plantera pas mais la comparaison n'aura pas lieu. Vous pouvez chercher le problème longtemps...
C'est pourquoi certains programmeurs ont pris l'habitude de mettre la constante à gauche de l'opérateur de comparaison. De cette façon, s'ils oublient de mettre une double-égalité, le programme plantera puisqu'il n'est pas possible d'assigner une valeur à une constante. Le problème sera facile à trouver et à régler.
// assigne 30 à la variable $valeur et retourne 30 donc toujours évalué à true...
if (
) {...
}
// technique correcte pour effectuer la comparaison et se protéger contre les erreurs d'inattention
if ( 30 == $valeur ) {
...
}
// si on omet la double égalité par mégarde, plantera donc problème facile à cerner
if (
) {...
}
Attention : les instructions SQL utilisées avec PHP, elles, devront utiliser le signe = pour comparer deux valeurs.
$requete = "SELECT url, titre FROM menus WHERE parent_id = -1";
Dans certains cas, l'opérateur === devra être utilisé pour comparer des valeurs.
Cet opérateur permet de s'assurer que les variables comparées contiennent la même valeur et le même type.
Ceci sera utile, par exemple, pour différencier une fonction qui retourne parfois a valeur booléenne FALSE et parfois le chiffre 0. Puisque le chiffre 0 peut également représenter la valeur FALSE, la triple égalité pourra différencier les deux cas.
$position = mb_strpos( $titre, 'exercice' );
// si position pas trouvée. Donc, si la position est trouvée mais vaut 0, n'entrera pas dans le if
if ( $position === FALSE ) {
...
}
L'opérateur !== renverra true si les deux opérandes ont une valeur diffénte OU s'ils sont de type différent.
$position = mb_strpos( $titre, 'exercice' );
// si position trouvée, incluant le cas où elle serait en position 0
if ( $position !== FALSE ) {
...
}
« Comparaison de types en PHP ». PHP. https://www.php.net/manual/fr/types.comparisons.php
▼Publicité