配列を定義するとしましょう:
$a = Array();
$a[0] = 1;
$a['0'] = 2;
$a['0a'] = 3;
print_r($a);
出力はかなり期待されています。値を上書きできるようにするために、内部で何らかの処理が行われていると思いstrval()
ます。intval()
Array
(
[0] => 2
[0a] => 3
)
しかし、これは私を混乱させるものです。
foreach($a as $k => $v) {
print(gettype($k) . "\n");
}
これは私に与えます:
integer
string
配列キーを使用する場合、PHPが内部でこれらの型変換を行うのはどうしてですか?つまり、ドキュメントに従って、キーが「有効な10進整数」であるとどのように判断しますか?また、is_int
文字列では機能しません。