这是一个最佳实践问题:
假设我想在foreach语句中执行两个函数(将这些函数的返回值组合起来用作循环的单个元素),我是否会在语句中将它们组合在一起,如:
foreach(function1($data).function2($data) AS $key=>$value)
还是有更好的方法吗?
答案 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) {
}
请注意,这不会对代码的结果或性能产生影响,它只会帮助调试和理解(顺便说一下,这通常更为重要)。