I am using a foreach loop within PHP similar to this:
foreach ($class->getAttributes() as $attribute) {
// Work
}
Concerning efficiency, is it better to have a $attributes = $class->getAttributes(); statement outside the foreach loop and iterate over the $attributes variable? Or is the $class->getAttributes() statement only getting called once inside the foreach declaration at the beginning?
(I realize this might not be a big efficiency concern in this case, but I would like to know the principle for this and other larger cases)
Thanks,
Steve
Using
$class->getAttributes()outside of theforeachloop and using a temporary variable, or keeping it like you wrote should not change anything about performances : it will still be evaluated only once.And here is an example that proves it :
I am using a function and not a method of a class, to get a shorter example, but the principle would be the same with a class+method.
And calling this portion of code gives the following output :
i.e. the
get_array()function is only called once, at the beginning of theforeachloop.