Php 在foreach循环中使用该函数而不是预定义数组时,是否每次foreach循环迭代都会调用该函数?
考虑以下代码段:Php 在foreach循环中使用该函数而不是预定义数组时,是否每次foreach循环迭代都会调用该函数?,php,arrays,function,loops,foreach,Php,Arrays,Function,Loops,Foreach,考虑以下代码段: <!DOCTYPE html> <html> <head> <style> table, th, td { border: 1px solid black; border-collapse: collapse; } th, td { padding: 5px; } </style> </head
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
}
</style>
</head>
<body>
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
</body>
</html>
通常在foreach循环中,使用现有数组迭代。
但是在上面的代码中,不使用foreach循环中的现有数组,而是调用一个内置函数,该函数返回一个数组
所以,我的问题是函数filter_list是否在每次循环迭代中都被调用
如果是,那么Frach循环如何管理下一个关键值对到上一次迭代?
如果没有,为什么以及如何工作 另外,让我知道这是一种正确的编码方式吗 该代码是否足够有效并遵循标准编码实践 多谢各位 过滤器列表将只被调用一次,它的返回值将临时存储在内存中,并进行迭代这样做很好-如果您需要代码中其他地方的filter_list结果,您应该将其存储在变量中,这样以后就不需要重新执行。函数filter_list将仅在第一次迭代中调用,返回的值将存储在缓冲区中,该缓冲区将在所有迭代中使用对于foreach循环。true,在更改数组结构时,这也会导致一些奇怪的事情发生。在过去有很多乐趣,它就像一个鬼影副本。。。英雄联盟