2012-01-06 14 views
0

两个例子:我是否需要在循环前检查数组/列表中是否有元素?

的Python

my_list = [] 
if my_list: 
    for item in my_list: ... 
# or just 
for item in my_list 

PHP

$result = mysqli_query($db, "..."); 
if (mysqli_num_rows($result)) { 
    while (mysqli_fetch_array($result)) {} 
} 
// or just 
while(mysqli_fetch_array($result)) {} 

有什么不同假设我不知道,通知用户如果列表或MySQL结果是通过提示信息空比如“你的信箱里没有字母!”例如。

回答

0

我认为在这种情况下,这是一个偏好问题。不过,这会更有意义做

if (mysqli_num_rows($result)) { 
while (mysqli_fetch_array($result)) {} 
} 

在这种情况下,这取决于你有多少行回来后,你可以做其他的事情,而不是只检查一次。但是,再次,它是一种偏好,如果你知道你永远不会再检查它,它会让你的代码更清洁,以第二种方式去做。

0

对于使用迭代器的foreach样式构造,预先检查没有任何好处,在某些情况下可能实际上导致执行两次昂贵的计算。迭代器本身必须检查数据的存在才能执行其工作,因此添加额外的检查不会增加任何值。添加这样的检查只会让你的代码更难读,所以你应该忽略它。

相关问题