Opérateur | Nom |
---|---|
== | égal |
!= | différent |
<> | |
< | inférieur |
<= | inférieur ou égal |
> | supérieur |
>= | supérieur ou égal |
=== | identique (valeur et type) |
!== | différent |
<=> | combiné (spaceship) |
$int3 = 3; // variable associée à une valeur de type entier
$str3 = '3'; // variable associée à une valeur de type string
echo "<h3>évaluation de l'expression ($int3 == $str3)</h3>";
if ($int3 == $str3) {
echo "<p>Le test a réussi car PHP a automatiquement transformé le type
d'une des deux variables !</p>";
}
echo "<h3>évaluation de l'expression ($int3 != $str3)</h3>";
if ($int3 != $str3) {
echo "<p>C'est l'effet inverse, le test échoue à cause du transtypage
automatique réalisé par PHP.</p>";
}
else {
echo "<p>Le test ($int3 != $str3) a échoué !</p>";
}
Résultat :évaluation de l'expression ($int3 == $str3)
Le test a réussi car PHP a automatiquement transformé le type d'une des deux variables !
évaluation de l'expression ($int3 != $str3)
Le test ($int3 != $str3) a échoué !
===
et !==
permettent d'éviter les conversions de types indésirables.echo "<h3>évaluation de l'expression ($str3 === $int3)</h3>";
if ($str3 === $int3) {
echo "<p>Ce test ne réussira pas car les deux valeurs ne sont pas du même type.</p>";
}
else {
echo "<p>Le test ($str3 === $int3) a échoué car les variables comparées
n'ont pas le même type</p>";
}
echo "<h3>évaluation de l'expression ($str3 !== $int3)</h3>";
if ($str3 !== $int3) {
echo "<p>Le test réussit, un entier et une chaîne sont différents</p>";
}
Résultat :évaluation de l'expression ($str3 === $int3)
Le test ($str3 === $int3) a échoué car les variables comparées n'ont pas le même type
évaluation de l'expression ($str3 !== $int3)
Le test réussit, un entier et une chaîne sont différents
<=>
retourne un entier positif, nul ou négatif dont le signe correspond à celui de la différence des deux termes :$var = 10<=>2; // $var vaut 1
$var = 2<=>10; // $var vaut -1
$var = 2<=>"2"; // $var vaut 0