php - 最好的方法是什么?

标签 php arrays

这两个索引有什么区别吗?如果有区别,使用哪一个更好?想要一些有关性能和差异(如果有)的信息。

$array[$data]
$array["$data"]

提前致谢!

*编辑;刚刚遇到$array["{$data}"] ,有关于那个的信息吗?

最佳答案

就我个人而言,为了清晰起见,我会选择第一个版本。 PHP 将为您解决:

$a = range(1,10);
$data = 2;
echo $a[$data];//3
$b = array('foo' => 'bar');
echo $b[$data];//notice undefined offset, echoes nothing!
$data = 'foo';
echo $b[$data];//echo bar

还有其他一些原因:'$data' !== "$data",因为单引号和双引号之间存在差异。所以第二种方式稍微容易出错。
使用数组很困惑:

$a[$data['key']];//is clear: use value of $data -> key 

相比:

$a["{$data[key]}"];
//or
$a["{$data['key']}"];

个人喜好有更多空间。虽然这可能看起来是一件好事,但是当在团队中工作时,使用像 Git 这样的 SVC 系统,这很快就会被证明是一种痛苦......相信我!

注意:

关于您对问题的编辑(“{$var}”)。这称为Complex (curly) syntax ,它的存在是为了避免歧义:

echo "some string with $an[array][value]";

解析器应该做什么?是否应该回显:

"some string with <value of$an>[array][value]";

将数组键访问器视为字符串常量,或者您的意思是:

"some string with <$an[array][value]>";

它可以回显:“some string with foobar”以及“some string with array[array][value]”,这就是您对表达式进行分组的原因:

echo "some string with {$an[array][value]}";

关于php - 最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18915043/

相关文章:

javascript - 添加空格以填充数组长度

php - 回显已发布 ID 的行名称,用于预选的表单值

php - xml 集成 - 将 xml 发布到 url

php - 如何添加以逗号分隔的备注栏?选择查询困惑

php - DOMDocument->saveXML() 花费太长时间

arrays - 如何从数组中删除重复值

javascript - 如何在满足特定条件的情况下随机化数组?

arrays - 如何在普通的lisp中获取数组的行大小和列?

php - 带有属性的 SOAP 请求

C++使用null部分填充数组