Индексация массива PHP: $array[$index] vs $array["$index"] vs $array["{$index}"]
Я рассчитал время для трех php-cgi способов использования индекса php-errors следующим образом:
for ($ii = 0; $ii < 1000000; $ii++) {
// TEST 1
$array[$idx] = $ii;
// TEST 2
$array["$idx"] = $ii;
// TEST 3
$array["{$idx}"] = $ii;
}
В первом php-frameworks наборе тестов использовалось php-date $idx=0
, во втором наборе использовалось php $idx="0"
, а в третьем наборе использовалось php-readfile $idx="blah"
. Хронометраж производился php-session с использованием microtime()
дифференциалов. Я php использую WinXP, PHP 5.2, Apache php-date 2.2 и Vim. :-)
И вот результаты:
Используя $idx = 0
$array[$idx] // time: 0.45435905456543 seconds
$array["$idx"] // time: 1.0537171363831 seconds
$array["{$idx}"] // time: 1.0621709823608 seconds
ratio "$idx" / $idx // 2.3191287282497
ratio "{$idx}" / $idx // 2.3377348193858
Используя $idx = "0"
$array[$idx] // time: 0.5107250213623 seconds
$array["$idx"] // time: 0.77445602416992 seconds
$array["{$idx}"] // time: 0.77329802513123 seconds
ratio "$idx" / $idx // = 1.5163855142717
ratio "{$idx}" / $idx // = 1.5141181512285
Используя $idx = "blah"
$array[$idx] // time: 0.48077392578125 seconds
$array["$idx"] // time: 0.73676419258118 seconds
$array["{$idx}"] // time: 0.71499705314636 seconds
ratio "$idx" / $idx // = 1.5324545551923
ratio "{$idx}" / $idx // = 1.4871793473086
Итак, $array[$idx]
— безоговорочный php победитель конкурса производительности, по php-readfile крайней мере, на моей машине. (Результаты php-cgi были очень воспроизводимыми, кстати, я php-date запускал его 3 или 4 раза php-include и получил те же результаты.)
php
syntax
Индексация массива PHP: $array[$index] vs $array["$index"] vs $array["{$index}"]
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.