Я рассчитал 3 способа использования индекса следующим образом:
for ($ii = 0; $ii < 1000000; $ii++) {
// TEST 1
$array[$idx] = $ii;
// TEST 2
$array["$idx"] = $ii;
// TEST 3
$array["{$idx}"] = $ii;
}
Первый набор использованных тестов $idx=0
, второй набор $idx="0"
и третий набор $idx="blah"
. Время было сделано с использованием microtime()
diffs. Я использую WinXP, PHP 5.2, Apache 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]
- победитель соревнований по производительности, по крайней мере, на моей машине. (Результаты были очень повторяемыми, кстати, я запустил его 3 или 4 раза и получил те же результаты.)