J'ai rencontré un piège lors de l'utilisation de PHP pour la comparaison de chaînes, comme indiqué dans le code :
<?php
var_dump('00E73694765433'=='0'); //true
var_dump('0134b40fsbi94u8'=='0'); //false
var_dump('0134b40fsbi94u8'=='134'); //false
echo PHP_EOL;
var_dump(is_numeric('00E73694765433'));//true
var_dump(is_numeric('0134b40fsbi94u8'));//false
?>
Le premier résultat obtenu est vrai, tandis que le second est faux. Après avoir parcouru les documents officiels, si le premier est forcé d'être converti en 0, alors le deuxième devrait être forcé d'être converti en 134, mais s'il est converti en 134, le troisième devrait être correct.
J'ai imprimé deux chaînes, et le résultat était très étrange, je n'ai pas pu le comprendre après avoir lu les documents officiels. S'il vous plaît, donnez-moi quelques conseils !
http://www.php.net/manual/zh/...
var_dump('0134b40fsbi94u8'=='134'); //false est comparatif
Comme ce sont toutes des chaînes, nous comparons d'abord le premier chiffre. Le résultat de la comparaison du premier chiffre est une comparaison entre 0 et 1, donc c'est faux
.另外 字符串之间的不建议使用比较运算符直接去比较大小,要是在需要比较php也提供了一些字符的比较函数
Pour comparer différents types de données, il est préférable d'utiliser les opérateurs congruents === et incongrus !==
Parce que les opérateurs de comparaison congruents === et incongruents !== vérifieront le type :
En un mot, lorsque vous comparez, essayez d'utiliser === et!== au lieu de == et!=.
De plus, PHP fournit également une série de fonctions de vérification de type :
Certaines fonctions fournissent également des paramètres de vérification de type auxquels il faut prêter attention, tels que :
Si la valeur du troisième paramètre est vraie, la fonction vérifiera également si les types sont les mêmes.
De plus, PHP prend également en charge les opérateurs de comparaison ==,!=,===,!== pour comparer si deux tableaux ou deux objets sont égaux.
PHP prend également en charge les opérateurs de comparaison (==,!=,===,!==) pour déterminer si deux objets sont égaux :
Votre première chaîne est exactement conforme à la notation scientifique.
Pour les langues avec des restrictions de type lâches, il y a souvent de tels pièges dans l'actualité.
Essayez d'utiliser des chèques strictement dactylographiés
Pour les langages faiblement typés comme php, vous pouvez utiliser
===
就别用==