首页 > 解决方案 > foreach 循环中的自动递增值,但它一直在进行

问题描述

摘要:每次通过foreach循环时都尝试添加+1,但即使我只期望循环中最多有11个结果,它也会继续上升

我试图在 the 上移动,$i++;但没有运气,我还检查了我是否确保$i = 0;foreach循环之外。

<?php
$facade = new NewsArticleFacade();
$news = $facade->getAll();
unset($facade);

$i = 0;
foreach($news as $new)
{
  $i++;
  if ($i = 5000000000000000)
  {
    echo "if statement: " . $i;
    break;
  }
  $content = substr($new->getContent(), 0, 69);
  echo "<div class='news'>";
    echo "<h4><a href='/news/news.php?id=".$new->getNewsID()."'>".$new->getTitle()."</a></h4>";
    echo "<span>by <a href='#'>".$new->getUser()->getUsername()."</a> - ".$new->getDate()->format("d-M-Y")."</span>";
    echo "<p>".$content." ...</p>";
    echo "<div class='gradient'></div>";
    echo "<img src='img/news/0000000001.jpg'>";
  echo "</div>";
}
?>

真正让我困惑的是,如果我删除循环的 if 语句,并且每次只回显 $i,它总共会回显 11 个,我的 if 做错了什么?

我希望循环通过 11 次,因为我在数据库中有 11 个条目用于此选择,但它继续上升,如果我在 if 语句中回显,我可以看到该值将只是我将 if 语句限制为是。

提前致谢!

标签: phploopsforeach

解决方案


这个

if ($i = 5000000000000000)

分配,在您的代码中没有什么意义。您可能想要进行比较操作,用==

if ($i == 5000000000000000) 

推荐阅读