Pour comparer des chaînes dans une fonction PHP , vous pouvez généralement utiliser une évaluation simple comme " if ($ chaine1 == $ string2 ) . " Parfois, cependant, les deux chaînes dans une fonction PHP peuvent avoir des différences subtiles entre eux --- Une conséquence de la façon dont PHP traite les variables ; car aucune donnée de type est enregistré avec la variable PHP permet les comparaisons de chaînes , même si une comparaison de chaîne serait inapproprié et affiche parfois un comportement étrange lorsque l'on tente de vérifier les différences entre les deux chaînes. Photos, illustrations et langages de programmation
variable PHP de frappe, en règle générale, peuvent être soit " fortement " ou " faiblement " dactylographiés . Dans un langage fortement typé , les variables ont un type explicite --- comme « entier » ou « chaîne ». PHP est un langage faiblement typé , la variable " $ var1 = 1.0» peut être traité comme un entier , un nombre à virgule flottante (si multiplié par un nombre décimal , par exemple ) ou une chaîne ( après concaténation avec l'opérateur ".") selon la façon dont il est utilisé . PHP fait très peu de contrôle variable, qui est généralement utile car il fournit une flexibilité supplémentaire et élimine la nécessité pour la coulée . D'autre part , dans certaines circonstances , cela peut provoquer un comportement inattendu dans votre programmation.
Valeurs de chaîne et Coulée
PHP supporte l'utilisation de la coulée --- conversion une variable expressément d'un type à un autre --- en incluant le type de variable entre parenthèses avant la variable est initialisée . Par exemple, " $ var2 = (string) $ var1 " initialise " $ var2 " comme une chaîne explicite. PHP permet également à la volée chaîne coulée par l'utilisation du " strval ()" fonction : le code " var3 $ = true" crée " $ var3 " comme une variable booléenne. " strval ( var3 $)" traitera ce même variable booléenne comme une chaîne , comme dans les comparaisons de chaînes ou des opérations de sous-chaînes.
comparaisons de chaînes
Parfois , typage faible de PHP peut devenir un problème . Par exemple , prenons le cas de "$ var1 = 1,0; $ var2 = 1; ». Une comparaison entre les deux PHP les traite comme des égaux: if ( $ var1 == $ var2 ) renverra "true", car par défaut PHP les traite comme des numéros . Cela reste vrai , même ils sont enveloppés dans strval () fonctions : if ( strval ( $ var1 ) == strval ( $ var2 ) ) sera également de retour "true". Pour comparer avec précision ces deux chaînes dans une fonction PHP , utilisez la " === " comparaison: if ($ var1 === $ var2 ) reviendront «faux».
Objets comme Strings < br la volonté de > Photos
PHP pour convertir des variables sur la volée peut aussi causer des problèmes lors de l'utilisation des objets . Par exemple, considérons un document XML qui contient la même chaîne (par exemple , un nom tel que "John Doe" ) en deux endroits. Si vous chargez chacun dans une variable de PHP intégré dans la bibliothèque " simplexml " , une comparaison entre les deux variables reviendra "false" , même si la valeur de chaîne est identique , parce que chacun d'eux transporte des informations sur la hiérarchie XML et les deux sont techniquement différent parce qu'ils étaient situés dans différentes parties du fichier XML. Dans ce cas, strval () viendra à la rescousse en retournant seulement la chaîne , sans les informations de nœud supplémentaire .