$array='hello hello2';
foreach(explode(' ',$array) as $v)
echo $v;
Run Code Online (Sandbox Code Playgroud)
爆炸多少次被执行?
使用另一个var更好吗?
$exploded = explode(...);
foreach($exploded as $v)
...
Run Code Online (Sandbox Code Playgroud)
?
它只执行一次.foreach将操作一个返回值explode(数组或假)的副本.
foreach是一种期望的语言结构$array as $key => $value.$array可以是任何计算结果的表达式,并且explode是这样的函数.表达式仅计算一次,然后foreach对表达式的结果进行操作.
例如,这与常规for循环不同.一个for循环需要三个表达式.针对循环的每次迭代计算第二和第三表达式.
因此,对于for循环,这两个语句之间可能存在差异(保留优化和O(1) - 性能count除外):
for($i = 0; $i < count($array); ++$i) { … }
// vs.
for($i = 0, $c = count($array); $i < $c; ++$i) { … }
Run Code Online (Sandbox Code Playgroud)