1

这更像是一个最佳实践问题:

假设我想在 foreach 语句中执行两个函数(以组合这些函数的返回以用作循环的单个元素),我是否会将它们组合在语句中,例如:

foreach(function1($data).function2($data) AS $key=>$value)

还是有更好的方法来做到这一点?

4

2 回答 2

2

如果function1function2返回数组,则:

foreach(array_merge(function1($data),function2($data)) AS $key=>$value)
于 2013-03-28T13:06:28.717 回答
1

首先,数组与+or连接array_merge(),点仅用于字符串,所以你会得到字符串“ArrayArray”。

其次,为了更好的可读性和可维护性,您应该将函数调用和循环初始化分开:

$fileList = function1($data); 
$fileList += function2($data);
foreach($fileLists AS $key=>$value) {
}

请注意,这不会影响代码的结果或性能,它只是有助于调试和理解(顺便说一句,这通常更重要)。

于 2013-03-28T13:08:14.137 回答