Maison > développement back-end > tutoriel php > Pourquoi `in_array()` et `array_search()` de PHP renvoient-ils parfois des résultats inattendus ?

Pourquoi `in_array()` et `array_search()` de PHP renvoient-ils parfois des résultats inattendus ?

Susan Sarandon
Libérer: 2024-12-10 22:49:12
original
384 Les gens l'ont consulté

Why Does PHP's `in_array()` and `array_search()` Sometimes Return Unexpected Results?

PHP in_array() et array_search() Comportement particulier : exploration du paramètre facultatif

En utilisant in_array() de PHP, vous pouvez rencontrer comportement inattendu lors de la recherche d’éléments inexistants. Cet article étudie cette bizarrerie et explore la résolution en introduisant l'obscur paramètre $strict.

Considérez un tableau comme $arr = [TRUE, "some string", "something else"]. Lors de la recherche de "test" à l'aide de in_array(), il renvoie étonnamment TRUE. De même, array_search() récupère un index « inexact » de 0. Ce comportement semble initialement déroutant, laissant supposer que TRUE déclenche automatiquement un résultat positif universalisé.

Cependant, il ne s'agit pas d'un bug mais d'une fonctionnalité intentionnelle. . in_array() et array_search() ont tous deux un troisième paramètre souvent négligé, $strict, qui détermine le mode de comparaison. Sa valeur par défaut, FALSE, permet une comparaison lâche (==), en ignorant les différences de type.

Par conséquent, dans le cas de $arr, TRUE == "any non-vide string" est évalué à TRUE. En définissant $strict sur TRUE, vous demandez à PHP d'utiliser une comparaison stricte (===), vérifiant à la fois l'égalité des valeurs et des types.

Cette connaissance apporte de la clarté au comportement déroutant. En utilisant une comparaison stricte, vous pouvez éviter les interprétations erronées et garantir des résultats de recherche précis. Pour plus d’informations sur la comparaison d’égalité et d’identité en PHP, consultez la référence fournie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal