简单的 PHP for 循环无限

Simple PHP for loop going infinite

我是 PHP 编程的新手,但这看起来非常简单。但是,每次我 运行 这都会陷入无限循环。 $facility是一个数组,在我目前的测试中size=2。任何帮助,将不胜感激。看起来问题不一定是无限循环,网页一直处于加载状态,直到我终止进程,所以我假设无限循环。

$facility = $_POST['facility'];

$whereClause = 'WHERE c.residentId = r.residentId AND c.sid = s.id AND p.sid = s.id AND c.createdAt BETWEEN p.effectiveStart AND p.effectiveEnd';

if ($facility[0] !== "ALL") {
  $whereClause = $whereClause.' AND s.facilityAbbr = "'.$facility[0].'"';

  $size = sizeof($facility);
  for($i = 1; $i< $size; $i++)
  {
    $whereClause = $whereClause.' OR c.facilityAbbr = "'.$facility[$i].'"';
  } 
}

您需要确保您的字符串变量在连接之前已初始化。

$whereClause = '';
$size = sizeof($facility);
for($i = 1; $i<$size; $i++) {
    $whereClause .= ' OR c.facilityAbbr = "'.$facility[$i].'"';
}

正如我在评论中提到的那样,如何缩短行,我将 post 放在这里,这样更有意义。

此外,请注意,如果 $facility 是一个包含无限项的数组,这是无限循环的唯一方式,这是值得怀疑的。您可能希望通过将其放在该代码之前的某处来打开错误报告。

  ini_set('display_errors', 1);

您也可以使用 Foreach 循环,这在我看来更合适,而且代码更少。

$whereClause = '';
foreach( $facility as $item ){
   $whereClause .= ' OR c.facilityAbbr = "'.$item.'"';
}