Php 使用用户函数从mysql返回结果

Php 使用用户函数从mysql返回结果,php,arrays,loops,Php,Arrays,Loops,请告诉我,为什么这个代码是错误的 function myres () { $db = new mysqli("localhost","userrr","pass","mvc"); $res = $db->query("SELECT * FROM news "); return $res; } while ($row = myres()->fetch_row()) { echo $row[0]; } 附言。 此代码正在运行: $db = new mys

请告诉我,为什么这个代码是错误的

function myres () {
   $db = new mysqli("localhost","userrr","pass","mvc");
   $res = $db->query("SELECT * FROM news ");
   return $res;
}


while ($row = myres()->fetch_row()) {
    echo  $row[0];
}
附言。 此代码正在运行:

$db = new mysqli("localhost","userrr","pass","mvc");
$res = $db->query("SELECT * FROM news ");
while ($row = $res->fetch_row()) {
    echo  $row[0];
}
在这里你每次调用
myres()
,我想:

while ($row = myres()->fetch_row()) {
  echo  $row[0];
}
$res = myres();

while ($row = $res->fetch_row()) {
  echo  $row[0];
}
所以每次
$row
包含结果的第一行时,它都不会停止。我认为它会很好地工作:

while ($row = myres()->fetch_row()) {
  echo  $row[0];
}
$res = myres();

while ($row = $res->fetch_row()) {
  echo  $row[0];
}

每次检查
while
条件时,都会执行
myres()
。如果在
while
循环之前将其提取到一个变量中,它会工作得更好。为什么不将查询从函数中取出,或者让它返回一个数组并对每个
执行一个
呢?非常感谢,我的错误是不可理解的,谢谢。这不是答案,更适合作为评论。这让人们相信,它每次都被称为新概念: