2009-02-17 41 views
3

我知道這是更好的性能使用「」分隔的字符串,而不是「」 ......訪問PHP數組有明確的字符串作爲指數

,但我不知道是否有任何性能improvemente這樣


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

$table = $a['table'] 

代替


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

$table = $a[table] 

我想是這樣,只是想知道你的意見......

+0

這是真的,真的,真的,不好的做法,不要引用數組的索引,如果它是一個字符串。 – 2009-02-17 03:15:51

回答

8

是的。在第二個例子中,PHP處理器檢查「table」是否被默認定義爲一個常量,然後將其默認爲一個數組鍵,因此它將進行比所需更多的檢查。這也可能造成問題。

考慮一下:

const table = 'text'; 

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

$table = $a[table] 

現在PHP解釋你的數組$一【正文】這是不是你想要的。

5

你應該總是引用你的字符串。在第二個例子中,PHP確實將tableorder轉換爲字符串,但如果tableorderdefined作爲常量,PHP將使用該常量的值而不是字符串「table」或「order」。

1

根據研究,「字符串」和「字符串」之間的差異是微不足道的,因此不存在。這不是問題多,但它的速度更快做

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

比它

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