phpbar.de logo

Mailinglisten-Archive

[php] Array-Funktionen vs. literale Angabe

[php] Array-Funktionen vs. literale Angabe

Yannik Hampe yannik at cipher-code.de
Son Feb 11 16:04:12 CET 2007



Yannik Hampe wrote:
> 
> Hannes H. wrote:
>> Schönn Sonntag, allerseits!
> Hallo Hannes,
>> Ich möchte die Gelegenheit nutzen und ein Thema im Zusammenhang mit
>> Arrays anbringen, dass mich schon länger beschäftigt:
>>
>> Für viele Aufgaben, die die Behandlung von Array betrifft, gibt es in
>> PHP zwei Wege:
>>
>> a) die spezielle Array-Funktion
>>  > z.B. array_push($array, $var);
>> b) die "literale" Angabe
>>  > z.B. $array[] = $var
>>
>> Welche davon ist die bessere Wahl? Gibt es überhaupt intern einen
>> Unterschied?
> 
> ja, es gibt einen unterschied: a) ist die Verwendung eines
> Sprachelements und b) ist die Verwendung einer Funktion. a) ist ca.
> doppelt so schnell wie b).
> (6ms vs 13ms bei 10000x[] vs 10000x array_push auf meinem Athlon 64
> 3700+, 2GB DDR2 Win2k php 5.2).

Ergänzung:
In der PHP-Manual steht:
Note: If you use array_push() to add one element to the array it's
better to use $array[] = because in that way there is no overhead of
calling a function.

Dies würde bedeuten, dass, wenn man sehr viele Elemente aufmal an einen
Array hängen will dies schneller ist.
Dies kann ich aber nicht bestätigen... [] hat bei mir gegenüber
array_push einen konstanten Vorsprung von ca. 5ms. Egal wieviele
Elemente ich anfüge.
> 
>> Und: Ist es ein Vorteil, wenn man eine Array-Variable mit
>> $foo = array(); als array initialisiert, bevor man sie so verwendet?
> 
> Warning: array_push() [function.array-push]: First argument should be an
> array in D:\Proggen\xampp\htdocs\test.php on line 3
> 
> Ja. Du solltest deine arrays schon vorher initialisieren mit array().
>> Liebe Grüße aus Wien,
>> Hannes Halenka
> 
> Yannik

Yannik

php::bar PHP Wiki   -   Listenarchive