当使用in_array()或array_search()函数时,如果$strict参数没有设置为true,则将使用松散比较来判断$needle是否在$haystack中.
下面是in_array()或array_search函数在没有设置$strict参数时的执行结果
$arr = [0,1,2,'3'];
var_dump(in_array('abc', $arr, true));//true
var_dump(array_search('abc', $arr, true));//0:下标
var_dump(in_array('1bc', $arr));//true
var_dump(array_search('1bc', $arr));//1:下标
建议在使用者两个函数时将$strict的值设为true,这样两个函数就会严格地比较$needles的类型与$haystack中的类型是否相同,以避免一些安全问题。
本文深入探讨了PHP中in_array()和array_search()函数在未严格比较时可能引发的安全问题。通过实例演示了当$strict参数未设置为true时,函数会进行松散比较,可能导致类型混淆错误。建议开发者在使用这两个函数时,应将$strict设为true,以避免潜在的安全隐患。
617

被折叠的 条评论
为什么被折叠?



