PHP 作 ▸ 2019-07-28 15:53 PHPの配列のキーは負の数が使えてfloatとboolはintegerにキャストされてnullはカラ文字として扱われる #PHP なんか思ってたより癖があったので書いておく PHP 7.2.4 普通にマニュアルに載ってます https://www.php.net/manual/ja/language.types.array.php#language.types.array.syntax 負の数はアリコード$arr = []; $arr[1] = 'A'; $arr[0] = 'B'; $arr[-1] = 'C'; var_dump($arr);実行結果array(3) { [1]=> string(1) "A" [0]=> string(1) "B" [-1]=> string(1) "C" }整数の文字列はintegerにキャストされる03 は正しい整数の文字列として扱われないのでキャストされない コード$arr = []; $arr[1] = 'A'; $arr['1'] = 'AA'; $arr[0] = 'B'; $arr['0'] = 'BB'; $arr[-1] = 'C'; $arr['-1'] = 'CC'; $arr[03] = 'D'; $arr['03'] = 'DD'; var_dump($arr);実行結果array(5) { [1]=> string(2) "AA" [0]=> string(2) "BB" [-1]=> string(2) "CC" [3]=> string(1) "D" ["03"]=> string(2) "DD" }floatはintegerにキャストされるコード$arr = []; $arr[0] = 'A'; $arr[0.4] = 'B'; $arr['0.4'] = 'BB'; $arr[0.6] = 'C'; $arr['0.6'] = 'CC'; var_dump($arr);実行結果array(3) { [0]=> string(1) "C" ["0.4"]=> string(2) "BB" ["0.6"]=> string(2) "CC" }boolはintegerにキャストされるコード$arr = []; $arr[true] = 'X'; $arr['true'] = 'XX'; $arr[false] = 'Y'; $arr['false'] = 'YY'; var_dump($arr);実行結果array(4) { [1]=> string(1) "X" ["true"]=> string(2) "XX" [0]=> string(1) "Y" ["false"]=> string(2) "YY" }nullはカラ文字として扱われるコード$arr[''] = 'Z'; $arr[null] = 'ZZ'; var_dump($arr);実行結果array(1) { [""]=> string(2) "ZZ" }