我foreach在PHP中使用类似于这样的循环:
foreach ($class->getAttributes() as $attribute) {
// Work
}
Run Code Online (Sandbox Code Playgroud)
关于效率,$attributes = $class->getAttributes();在foreach循环外部使用语句并迭代$attributes变量是否更好?或者$class->getAttributes()语句只是foreach在开头的声明中被调用一次?
(我意识到在这种情况下这可能不是一个很大的效率问题,但我想知道这个和其他更大案例的原理)
谢谢,
史蒂夫
Pas*_*TIN 15
使用循环$class->getAttributes()外部foreach并使用临时变量,或保持它像你写的那样不应该改变任何关于性能的东西:它仍然只会被评估一次.
以下是一个证明它的例子:
function get_array() {
echo 'function called !<br />';
return array(
'first' => 123,
'second' => 456,
'last' => 789,
);
}
foreach (get_array() as $key => $value) {
echo "$key : $value<br />";
}
Run Code Online (Sandbox Code Playgroud)
我使用函数而不是类的方法来获得一个更短的例子,但原理与类+方法相同.
并调用此部分代码提供以下输出:
function called !
first : 123
second : 456
last : 789
Run Code Online (Sandbox Code Playgroud)
即,该get_array()函数仅在foreach循环开始时调用一次.
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |