php - 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 个对象并在“此处”进行控制台日志记录两次。
我尝试过的事情:
- 摆脱包装
<div>
- 存储
$form->awards
在数组变量中并对其进行迭代 - 擦除和重新键入整个
<td>
- 从其他可以正常工作的代码中复制 foreach 行。
echo
与关闭 php?>
并使用 HTML 相比。- 删除 error_log 行
- 为了这篇文章,我删除了检查是否
$form->awards
存在的行。我知道在这种情况下确实如此。 - echo('here') 和 echo 'here';
解决方案
我花了太多时间看代码!
所以我在屏幕上有 2 个手风琴标签,每个标签里面都有一个表格。我正在查看错误的手风琴,因此没有看到输出被发送到浏览器。
很难相信我在这上面花了几个小时,但我很高兴知道我没有疯,这是一个简单的答案。
感谢所有试图提供帮助的人。
我会投票删除这篇文章。
推荐阅读
- assembly - 关于 CTF 挑战的学习组装问题
- sql - 从 Worker 表中获取带有 id 的 Person-Name
- php - 如何通过它们共享的单个列(日期)对没有关系和不同列的两个表进行排序
- c++ - CMAKE MAC OSX 库链接问题:在 Linux 上编译但在 Mac 上
- c# - 从客户端取消服务器套接字
- c - CaptureStackBackTrace 远程进程
- webpack - Webpack 默认配置对象
- bash - 合并下划线前带有 ID 的文件
- java - 如何将 jsyn 示波器添加到 Jsyn SawTooth
- mysql - SQL:为条件连接同一列两次