Wie wird ein Array in einer PHP-foreach-Schleife gelesen?

Wir haben alle davon gehört, wie in einemfor Schleife, wir sollten dies tun:

for ($i = 0, $count = count($array); $i < $c; ++$i)
{
    // Do stuff while traversing array
}

an Stelle von

for ($i = 0; $i < count($array); ++$i)
{
    // Do stuff while traversing array
}

aus Gründen der Leistung (d. h. Initialisieren von$count hätte @ angerufcount() nur einmal, anstatt @ aufzurufcount() bei jeder bedingten Prüfung).

Macht es dann auch einen Unterschied, ob in einemforeach Schleife mache ich das:

$array = do_something_that_returns_an_array();

foreach ($array as $key => $val)
{
    // Do stuff while traversing array
}

an Stelle von

foreach (do_something_that_returns_an_array() as $key => $val)
{
    // Do stuff while traversing array
}

Angenommene Umstände erlauben es mir, entweder zu verwenden? Das heißt, PHP ruft die Funktion in beiden Fällen nur einmal auf oder ist es wiefor Wo würde der zweite Fall die Funktion immer wieder aufrufen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage