[英]PHP Accessing an array element by its index as string literal, good or bad?
$array = array(
'first element',
'second element',
'third element',
);
echo $array['1'];
echo $array[1];
它们都产生相同的结果。
我问这个问题是因为我注意到例如drupal以字符串文字形式访问索引,而php.net使用整数。
有一个相对于另一个的优势吗?
我当然知道为什么$array[foo]
不好。
就语义而言,它是无所谓的。
当您执行$array['string']
且'string'
是一个以10为底的数字时,前导零和小数点位于整数范围内(即,介于-PHP_INT_MAX-1
和PHP_INT_MAX
),它将被转换为一个整数。
就性能而言,最好直接使用整数,因为这将跳过转换步骤。
PHP只会将“ 1”强制转换为整数或数组键0x01。
从理论上讲,如果键只是一个简单的数组(如您发布的键)及其整数值,则仅访问键会更快。
两种形式等同于一种形式,如果它们用于分配值,则它们会覆盖另一种形式……例如:
<?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]
不需要类型强制,所以速度更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.