Je travaille actuellement dans « la programmation PHP » O'Reilly et je suis venu dans ce tableau intitulé « Type de comparaison effectuée par les opérateurs de comparaison »:Comparaison PHP Opérateurs et types de données
First Operand | Second Operand | Comparison ----------------------------------------------------------------------- Number | Number | Numeric String that is numeric | String that is numeric | Numeric String that is numeric | Number | Numeric String that is not numeric | Number | Lexicographic String that is numeric | String that is not numeric | Lexicographic String that is not numeric | String that is not numeric | Lexicographic
Ma règle de Le type de comparaison est "numérique si et seulement si au moins un opérande est un nombre ou si les deux opérandes sont des chaînes numériques". Cela semble être pris en charge par le php.net page on Comparison Operators, qui indique "Si vous comparez un entier avec une chaîne, la chaîne est convertie en un nombre.Si vous comparez deux chaînes numériques, ils sont comparés comme des entiers." Toutefois, cela impliquerait que la comparaison dans la quatrième ligne de la table devrait être "numérique". La table contient-elle une erreur ou ma règle est-elle incorrecte?
Votre règle est fausse. Essayez de comparer '" chaîne "== 0' et' intval ("chaîne") == 0' –
@Ast Derek: Le résultat des deux comparaisons semble être vrai. – user200783