热搜:NVER node 开发 php

初学者对while 的一点疑惑

2024-08-17 18:40:01
初学者对while 的一点疑惑

function dql($sql)
         {
             $res=$this->mysqli->query($sql);
             if(!empty($res))
             {
  
             while ($row=$res->fetch_row())
         
             return $row;
             $res->free_result();
             }else 
             {return null;}
            }
  我现在不明白他为什么只返回一条语句?查询到的结果有很多,while里面只要是真他就返回一条语句,可是为什么他只返回最后一条语句?
<?php
$a=20;
while($a {echo $a;
$a++}
?>
上面这个和$row 有什么区别吗?不也是一次先判断在输出,然后接着判断在输出?最后直到条件不成立,就不输出了。可为什么$row 只输出一次?$row 的条件就是$res 里面没有记录了,他就不再循环了。。是不是我对while理解不对?
我一直理解为只要while条件里面为真就会循环一次代码块,可从$row里面好像是都循环完了才输出?


回复讨论(解决方案)

至少你的观察是很不仔细的
while ($row=$res->fetch_row())
   return $row;
只会返回第一条记录,而不是其他