Égalité par valeur et par type en PHP
Supposons que vous souhaitiez comparer de telle sorte que le nombre
entre guillemets ne soit pas égal au même nombre
sans guillemets. En d'autres termes, vous voulez
comparer de manière à ce que la comparaison soit non seulement
par valeur, mais aussi par type de données. Pour cela,
au lieu de l'opérateur ==, vous devez utiliser
l'opérateur ===. La comparaison avec un tel opérateur
est appelée stricte.
Voir l'exemple :
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // cela s'exécutera, car les valeurs ne sont pas égales par type
}
?>
Mais lors de la comparaison de deux chaînes '3'
le symbole '+' s'affichera à l'écran :
<?php
if ('3' === '3') {
echo '+++'; // cela s'exécutera
} else {
echo '---';
}
?>
De même que lors de la comparaison de nombres :
<?php
if (3 === 3) {
echo '+++'; // cela s'exécutera
} else {
echo '---';
}
?>
La différence entre les deux opérateurs se manifeste précisément lorsque les valeurs sont identiques, mais que le type de données est différent. Dans les autres cas, ces opérateurs fonctionnent de la même manière. Par exemple, lors de la comparaison de nombres différents, bien sûr, un moins s'affichera :
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // cela s'exécutera
}
?>
Actuellement en PHP, il est communément admé d'utiliser partout la comparaison stricte. On considère que dans ce cas, le code est moins sujet aux erreurs.
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>