PHPの連想配列のキーは、文字列か整数が利用可能だが、型判定なしで比較

 PHPの連想配列のキーは、文字列か整数が利用可能だが、型判定なしで比較

    $test = [];
    $test[123] = '123 int';
    $test['123'] = '123 string';

    $test[1.2] = '1.2 real';
    $test[1.6] = '1.6 real';

    $test['1.2'] = '1.2 string';
    $test['1.6'] = '1.6 string';

    print_r($test);

実行結果
    Array
    (
        [123] => 123 string
        [1] => 1.6 real
        [1.2] => 1.2 string
        [1.6] => 1.6 string
    )


キーは
  • 数値と数値のみの文字列は同一
  • 実数は小数部が切り捨てられる
    $test[1.2] は $test[1.6] で上書きされている。どちらも $test[1] への代入と同じ

コメント