<分区>
$array='hello hello2';
foreach(explode(' ',$array) as $v)
echo $v;
explode 执行了多少次?
使用另一个变量是否更好:
$exploded = explode(...);
foreach($exploded as $v)
...
?
标签 php
<分区>
$array='hello hello2';
foreach(explode(' ',$array) as $v)
echo $v;
explode 执行了多少次?
使用另一个变量是否更好:
$exploded = explode(...);
foreach($exploded as $v)
...
?
最佳答案
它只会被执行一次。 foreach
将对 explode
的返回值副本进行操作(数组或 false)。
foreach
是一种语言结构,它期望 $array 作为 $key => $value
。 $array
可以是任何计算结果为数组的表达式,explode
就是这样一个函数。表达式只计算一次,然后 foreach 对表达式的结果进行操作。
例如,这与常规的 for
循环不同。 for
循环采用三个表达式。循环的每次迭代都会计算第二个和第三个表达式。
因此对于 for 循环,这两个语句之间可能存在差异(将优化和 count
的 O(1) 性能放在一边):
for($i = 0; $i < count($array); ++$i) { … }
// vs.
for($i = 0, $c = count($array); $i < $c; ++$i) { … }
关于php - explode 是否在 foreach 中执行了不止一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8201316/