PHP 函数中的条件返回


Conditional return in a PHP function

我的函数中有一个返回语句:

function fun($result)
 {
    $counter = 0;
    while($row=mysql_fetch_array($result))
    {
      /*if($counter==2)
      {
        return $name;
      }*/ 
      $user=$row['message'];
      $sql2="select username from members where id='$user'";
      $result2=mysql_query($sql2);
      $row2=mysql_fetch_array($result2);
      $name .= $row2['username']." and ";
      $counter++;
      if($counter==2)
      {
        return $name;
      } 
    }
 } 

返回块(已注释)不起作用,无论条件如何,都会立即终止函数的执行。但是,如果按照代码所示放置到位,则返回块就可以正常工作。为什么?我只想返回 2 行。似乎无论放在之前还是之后都应该起作用,因为它取决于计数器的值。在向变量添加新行之前检查条件$name。第一行将添加到$name并递增$counter,然后检查条件等。怎么了?

函数在少于 3 行时不返回任何内容,即使你想在达到 2 时返回,你至少需要 3 行。

该函数在您处理第二行检查循环中的$counter

所以函数至少需要 3 行才能返回$ name。 这很奇怪,因为您希望它返回,然后找到 2 个名称。

该函数不一定终止,但根本不返回任何内容。

您的函数可能永远无法到达 return 语句。您必须检查这两个条件是否为,如果是,则返回$namefor 循环应该做你需要的。

function fun($result)
{
  for($cnt=0; ($row=mysql_fetch_array($result)) AND $cnt<2; $cnt++)
  {
    $name .= 'Your Data';
  }
return $name;
}