使用显式字符串作为索引访问php数组

时间:2009-02-17 03:06:17

标签: php arrays indexing

我知道使用''分隔字符串而不是“”更高效...

但我想知道是否有任何表现改进这样做


$a = array( 'table' => 'myTable', 'order' => 'myOrder' );

$table = $a['table']

而不是


$a = array( table => 'myTable', order => 'myOrder' );

$table = $a[table]

我想是的,但只是想知道你的意见......

3 个答案:

答案 0 :(得分:8)

是。在您的第二个示例中,PHP处理器检查“table”是否在将其默认为数组键之前定义为常量,因此它会进行多次检查。这也可能造成问题。

考虑一下:

const table = 'text';

$a = array( table => 'myTable', order => 'myOrder' );

$table = $a[table]

现在,PHP将您的数组解释为$ a [text],这不是您想要的。

答案 1 :(得分:5)

你应该总是引用你的字符串。在第二个示例中,PHP确实将tableorder转换为字符串,但如果tableorderdefined作为常量,则PHP将使用常量而不是字符串'table'或'order'。

答案 2 :(得分:1)

根据研究,“字符串”和“字符串”之间的差异可以忽略不计。并不重要,但它做得更快

echo "this is {$var1} and {$var2} and {$var3}";

而不是

echo 'this is ' . $var1 . ' and ' . $var2 . ' and ' . $var3;