in_Arrayの穴
669 ワード
原因がこうなったのは、in_arrayが起こした災い、in_array(search,array)は配列中の各valueをsearchと比較することに等価である.私の$param配列にはintパラメータのほかにstringパラメータがあり、stringとintで比較することに相当する.PHPの暗黙的な変換規則:非デジタル文字列と整数比較、文字列が自動的にint(0)に変換される次の例は私たちの説を検証した.
$a = (int)'abc'; var_dump($a); //int(0)
$c = array(0,1,2,3); if(in_array('abc', $c)) {
echo 'exist'; } else {
echo 'not exist'; } //exist ```
*** *** in_array true, , true
, , int ,string , ,
https://www.awaimai.com/2078.html