举个例子:
foreach(explode(' ','word1 word2 word3') as $v)
echo $v;
据我所知,php每次爆炸功能都不会执行,但它只会在第一次执行。
这是真的吗?即使对于用户定义的函数,这是真的吗?
这段代码比这更好还是相同?
$genericVar = explode(' ','word1 word2 word3');
foreach($genericVar as $v)
echo $v;
感谢
答案 0 :(得分:5)
单独的代码更好,因为它提高了可读性并且维护代码会更容易。
永远不要将语句填入彼此只是为了删除一些行并使其看起来紧凑。当然,你可以保存一些字节,但是这些字节会在保留它的同时咬你。
答案 1 :(得分:1)
foreach
使用给定数组的副本,因此该函数只执行一次。
foreach(explodecount(' ','A B C') as $v)
echo $v;
function explodecount($a,$b){
echo '@';
return explode($a,$b);
}
// output: @ABC
// not @A@B@C
但这不起作用:
foreach(explode(' ','A B C') as &$v)
echo $v;
在这里,你必须将爆炸的数组存储在一个单独的变量中。
答案 2 :(得分:0)
使用foreach时,这两段代码是等效的。爆炸功能只会被调用一次。
但是,这不适用于for循环,例如:
for($i = 0; $i < count($array); ++$i) {}
在此示例中,将在每次迭代时调用count函数。