考虑下面的代码片断:当foreach循环使用它而不是foreach循环中的预定义数组时,该函数是否被每次迭代调用?
<!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()
被调用每个循环迭代?
如果是,那么foreach循环如何管理考虑下一个键值对以前的迭代?
如果否,为什么以及它如何工作呢?
另外,让我知道这是一种正确的编码方式?
此代码是否足够有效并遵循标准编码实践?
谢谢。
是的,这也会导致在更改数组结构时发生一些奇怪的事情。过去有很多乐趣,就像一个幽灵副本......大声笑 – ArtisticPhoenix