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