执行两个函数作为foreach语句的一部分

时间:2013-03-28 12:58:15

标签: php foreach

这是一个最佳实践问题:

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

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

还是有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

如果 function1 function2 返回数组,则:

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

答案 1 :(得分:1)

首先,数组与+array_merge()连接,点仅用于字符串,因此您将获得字符串“ArrayArray”。

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

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

请注意,这不会对代码的结果或性能产生影响,它只会帮助调试和理解(顺便说一下,这通常更为重要)。