繁体   English   中英

PHP通过其索引作为字符串文字访问数组元素,好还是坏?

[英]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-1PHP_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM