无引号、单引号和双引号数组键之间的区别

问题描述 投票:0回答:3

我知道在访问/处理字符串值时使用单引号比使用双引号性能更高,但我想知道完全省略引号是否有任何性能优势。

$a = array('table' => 'myTable');

$table = $a['table'];

$a = array(table => 'myTable');

$table = $a[table];
php arrays key
3个回答
8
投票

是的。在第二个示例中,PHP 处理器在将“table”默认为数组键之前会检查“table”是否被定义为常量,因此它会进行比需要的更多检查。这也会产生问题。

考虑一下:

const table = 'text';

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

$table = $a[table]

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


5
投票

您应该始终引用您的字符串。在第二个示例中,PHP 确实将

table
order
转换为字符串,但如果
table
order
定义 作为常量,PHP 将使用常量的值而不是字符串“table”或‘订单’。


1
投票

根据研究,“字符串”和“字符串”之间的差异可以忽略不计,甚至不存在。这并不重要,但做起来更快

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

比它

echo 'this is ' . $var1 . ' and ' . $var2 . ' and ' . $var3;
© www.soinside.com 2019 - 2024. All rights reserved.