Formation PUB010 : PHP, 2025 Notions de programmation appliquées au PHP

14.4 Opérateurs d'assignation et de comparaison


L'opérateur = permet d'assigner une valeur à une variable.

PHP

$nom = 'Annie';

Attention de ne pas le confondre à l'opérateur == qui permet de comparer deux valeurs.

PHP

if ( $valeur == 30 ) {

   ...

}

Truc de programmeur

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.

PHP

// assigne 30 à la variable $valeur et retourne 30 donc toujours évalué à true...

if ( $valeur = 30 ) {   

   ...

}

 

// 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 ( 30 = $valeur ) {   

   ...

}

Instructions SQL stockées dans une variable PHP

Attention : les instructions SQL utilisées avec PHP, elles, devront utiliser le signe = pour comparer deux valeurs.

PHP

$requete = "SELECT url, titre FROM menus WHERE parent_id = -1";

Triple égalité : même valeur et même type

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.

PHP

$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 ) {    

   ...

}

!== : inverse de ===

L'opérateur  !== renverra true si les deux opérandes ont une valeur diffénte OU s'ils sont de type différent.

PHP

$position = mb_strpos( $titre, 'exercice' );

 

// si position trouvée, incluant le cas où elle serait en position 0

if ( $position !== FALSE ) {    

   ...

}

Pour plus d'information

« Comparaison de types en PHP ». PHP. https://www.php.net/manual/fr/types.comparisons.php

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre