假设我定义了一个数组:
$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 在使用数组键时如何在内部进行这些类型转换?即,它如何根据文档确定密钥是“有效的十进制整数” ?此外,is_int
不适用于字符串。