Funktionsaufruf in foreach-Schleife verwenden

Gibt es hinsichtlich der Effizienz Probleme bei der Verwendung eines Funktionsaufrufs in einer foreach-Schleife? Zum Beispiel:

foreach ($this->getValues() as $value) {
  //Do something with $value
}

gegen

$values = $this->getValues();
foreach ($values as $value) {
  //Do something with $value
}

Grundsätzlich ist PHP clever genug, um $ this-> getValues ​​() nur einmal im ersten Beispiel aufzurufen, oder ruft es es bei jeder Iteration auf. Wenn es es bei jeder Iteration aufruft, wie verfolgt es dann, bei welchem ​​Element es sich gerade befindet?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage