l’opérateur ==
transtype “toto” en integer pour pouvoir le comparer à l’integer 0 placé à gauche de l’opérande
hors : (integer)(”toto”); donne 0
donc 0 === (integer)(”toto”);
il fallait tester le type donc var_dump(0 === “toto”);
Bien sur que ce comportement est normal, toujours est-il qu’il est surprenant. A noter que la condition inverse retourne true aussi Le meilleur moyen de faire des comparaisons reste en effet d’utiliser le triple opérateur qui tient compte aussi du typage dans la comparaison.
2 commentaires ↓
Ce comportement est normal.
l’opérateur ==
transtype “toto” en integer pour pouvoir le comparer à l’integer 0 placé à gauche de l’opérande
hors : (integer)(”toto”); donne 0
donc 0 === (integer)(”toto”);
il fallait tester le type donc var_dump(0 === “toto”);
qui retourne bien (boolean)false;
Bien sur que ce comportement est normal, toujours est-il qu’il est surprenant. A noter que la condition inverse retourne true aussi
Le meilleur moyen de faire des comparaisons reste en effet d’utiliser le triple opérateur qui tient compte aussi du typage dans la comparaison.
Laisser un commentaire