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!