phpでdouble型でも配列を扱うことは出来るんだけど、
double型だとint型やstring型とは違って、
完全にこちらの認識通りには動いてくれない。
※ex1
define('MY_DOUBLE', 1.1); $my_double = MY_DOUBLE; $arr_box = array( 1.1 => '1.1', 3.0 => '3.0', 1.0 => '1.0', );
としたとき
print($arr_box[MY_DOUBLE]); print($arr_box[$my_double]);
ともに
『1.1』ではなく、『1.0』が表示される。
※ex2
で、ex1を下記のように 1.0をコメントアウトすると
$arr_box = array( 1.1 => '1.1', 3.0 => '3.0', // 1.0 => '1.0', );
『1.1』が表示される。
ex1状態(コメントアウト前)の$arr_box配列をprint_rしてみた。
Array ( [1] => 1.0 [3] => 3.0 )
『1.1』消滅している。
ていうかキー整数になってる…
しかし
define('MY_DOUBLE', 1.1); print(MY_DOUBLE);
だと『1.1』が出てるから、
むしろ何でex2で『1.1』が取れたのか、そこが疑問になるわけです。
数字がキーの場合に限り、近い値でも出るのか?
コメント