Différence entre les opérateurs de comparaison == et === en PHP

Subodh Poudel 30 janvier 2023
  1. Comparez une valeur entière et une valeur à virgule flottante avec l’opérateur de comparaison égal à double (==) et triple (===) en PHP
  2. Comparez une valeur entière et une valeur booléenne avec l’opérateur de comparaison égal à double (==) et triple (===) en PHP
  3. Comparez une valeur entière et une valeur de chaîne avec l’opérateur de comparaison double et triple égal
Différence entre les opérateurs de comparaison == et === en PHP

Cet article présentera la différence entre les opérateurs de comparaison double égal == et triple égal === en PHP. La différence significative est que l’opérateur de comparaison double égal compare la valeur des deux opérandes. En revanche, l’opérateur de comparaison triple égal compare la valeur et le type des opérandes.

Nous allons introduire une méthode pour différencier l’opérateur de comparaison double égal et triple égal en comparant un entier et une valeur à virgule flottante. Nous utiliserons l’opérateur ternaire comme instruction conditionnelle.

La deuxième méthode compare l’opérateur de comparaison double égal et triple égal à un entier et une valeur booléenne. Nous utiliserons également l’opérateur ternaire dans cette méthode.

Nous démontrerons également la comparaison d’une valeur entière et d’une chaîne à l’aide de l’opérateur de comparaison double égal et triple égal. Nous utiliserons la fonction var_dump() pour vider la comparaison dans cette méthode.

Comparez une valeur entière et une valeur à virgule flottante avec l’opérateur de comparaison égal à double (==) et triple (===) en PHP

Nous pouvons comparer les deux mêmes valeurs de types différents à l’aide des opérateurs de comparaison. Cette méthode compare un entier et une virgule flottante qui ont la même valeur. Nous pouvons utiliser l’opérateur ternaire pour comparer les opérandes et la fonction var_dump() pour vider leurs valeurs booléennes.

Par exemple, créez une variable $a et stockez-y la valeur entière 5. Stockez une valeur à virgule flottante 5.0 dans une autre variable $b. Comparez les deux variables avec l’opérateur de triple comparaison à l’aide de l’opérateur ternaire. La valeur de vérité renvoie true, et la valeur de faux renvoie false dans l’opérateur ternaire. Stockez l’opération dans la variable $c. De même, comparez les deux variables avec l’opérateur double égal avec l’opérateur ternaire et stockez l’opération dans la variable $d. Utilisez les fonctions var_dump() dans les deux variables $c et $d.

La sortie de l’exemple de code renvoie la valeur false pour l’opérateur triple égal et la valeur true pour l’opérateur double égal. La valeur 5 est de type entier et la valeur 5.0 est de type flottant, bien que la valeur soit la même. Par conséquent, l’opérateur triple égal renvoie une valeur fausse et l’opérateur double renvoie une valeur vraie.

Exemple de code :

#php 7.x 
<?php
$a = 5; 
$b = 5.0; 
$c = $a===$b ? true : false;
$d = $a==$b ? true : false;
var_dump($c);
var_dump($d);
?>

Production:

bool(false) bool(true)

Comparez une valeur entière et une valeur booléenne avec l’opérateur de comparaison égal à double (==) et triple (===) en PHP

Cette méthode compare une valeur entière 1 et la valeur booléenne true. La valeur entière 1 désigne la valeur de vérité. On peut utiliser l’opérateur ternaire comme dans la première méthode. Par exemple, stockez la valeur entière 1 dans une variable $a. Créez une autre variable $b et stockez-y une valeur booléenne true. Utilisez l’opérateur ternaire pour comparer ces deux variables comme dans la première méthode. Comparez les variables avec l’opérateur de comparaison double égal et triple égal. Stockez les résultats dans les variables $c et $d et utilisez les fonctions var_dump() pour vider ces variables.

La variable $c renvoie la valeur fausse et la valeur $d renvoie la valeur vraie. Comme l’opérateur triple égal compare le type des opérandes, il est évident que le type de 1 et true ne correspond pas. Mais, la valeur 1 est la valeur de vérité, donc sa valeur est la même que la valeur booléenne true.

Exemple de code :

#php 7.x 
<?php
$a = 1; 
$b = true; 
$c = $a===$b ? true : false;
$d = $a==$b ? true : false;
var_dump($c);
var_dump($d);
?>

Production:

bool(false) bool(true)

Comparez une valeur entière et une valeur de chaîne avec l’opérateur de comparaison double et triple égal

On peut comparer les opérandes directement dans la fonction var_dump() pour voir le résultat de la comparaison. Cette méthode est la méthode abrégée des méthodes utilisant les opérateurs ternaires. L’illustration ci-dessous compare une valeur entière et une valeur de chaîne à l’aide de l’opérateur de comparaison triple égal et double égal.

Par exemple, créez une variable $a et stockez-y la valeur entière 5. Stockez une valeur de chaîne 5 dans une autre variable $b. Comparez d’abord ces deux variables à l’aide de l’opérateur de comparaison triple égal, puis à l’aide de l’opérateur double égal. Enveloppez ces comparaisons dans les fonctions var_dump().

La première comparaison donne une fausse valeur. La deuxième comparaison renvoie la valeur de vérité. Le type des deux variables ne correspond pas, il en résulte une valeur fausse. La valeur de chaîne 5 est convertie en une valeur entière et la valeur des deux variables sera la même. Cependant, le type des variables ne change pas.

Exemple de code :

#php 7.x 
<?php
$a = 5; 
$b = '5';
var_dump($a===$b);
var_dump($a==$b);
?>

Production:

bool(false) bool(true)
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Article connexe - PHP Operator