$array = array(
'first element',
'second element',
'third element',
);
echo $array['1'];
echo $array[1];
他们都产生相同的结果。
我问这个问题,因为我注意到例如drupal将索引作为字符串文字访问,其中php.net使用整数。
一方面有优势吗?
当然我知道为什么$array[foo]
不好。
答案 0 :(得分:6)
它在语义方面无动于衷。
执行$array['string']
时,'string'
是基数为10的数字,不带前导零和小数点,适合整数范围(即,在-PHP_INT_MAX-1
和{{1}之间}),它将被转换为整数。
就性能而言,最好直接使用整数,因为这会跳过转换步骤。
答案 1 :(得分:3)
PHP只会将'1'强制转换为整数或数组键0x01。
从理论上讲,如果它们只是一个简单的数组,就像你发布的一个简单的数组,它们的整数值会更快。
答案 2 :(得分:3)
如果两个表单用于分配值,那么这两个表格将覆盖另一个表格...例如:
<?php
$new = array(1 => "number", "1" => "string");
echo count($new); // <== Output: 1
echo "The array has {$new[1]} and {$new['1']}";
//Output: The array has string and string
?>
从理论上讲,服务器工作较少的工作速度更快。由于$array[1]
不需要类型强制,因此速度更快。