首页 > 解决方案 > php可以记录但不能在foreach中回显

问题描述

我有一个遍历对象数组的 foreach 循环。目标是将数据从数组中的每个对象输出到表格单元格。我一直在 HTML 和 PHP 之间来回切换,但是这个不会输出到浏览器。在循环内部,我可以 error_log 对象,但我可以直接使用 echo 语句或关闭 PHP 来编写 HTML,但它们都不会被打印出来。

有趣的是,这实际上是在另一个 foreach 循环中,它以完全相同的方式编写并且工作正常!

编辑:好的,我已经尽可能地简化了代码。error_log 行将“here”写入错误日志。下一行不会向浏览器回显“这里”!

<div class='grid-x'>
    <?php
        foreach($form->awards as $award) {
            error_log('here');
            echo 'here';
        }
    ?>
</div>

结果:只有包装<div class='grid-x'></div>被打印到浏览器。里面什么都没有,尽管代码肯定会迭代 2 个对象并在“此处”进行控制台日志记录两次。

我尝试过的事情:

  1. 摆脱包装<div>
  2. 存储$form->awards在数组变量中并对其进行迭代
  3. 擦除和重新键入整个<td>
  4. 从其他可以正常工作的代码中复制 foreach 行。
  5. echo与关闭 php?>并使用 HTML 相比。
  6. 删除 error_log 行
  7. 为了这篇文章,我删除了检查是否$form->awards存在的行。我知道在这种情况下确实如此。
  8. echo('here') 和 echo 'here';

标签: phpforeachecho

解决方案


我花了太多时间看代码!

所以我在屏幕上有 2 个手风琴标签,每个标签里面都有一个表格。我正在查看错误的手风琴,因此没有看到输出被发送到浏览器。

很难相信我在这上面花了几个小时,但我很高兴知道我没有疯,这是一个简单的答案。

感谢所有试图提供帮助的人。

我会投票删除这篇文章。


推荐阅读