You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP文件不更新排查:嵌套foreach无输出及缓存相关问题

问题排查与解决思路

嘿,我仔细看了你的问题和代码,你折腾了这么多缓存清理操作,但其实页面空白的核心原因大概率是PHP语法错误,先把这个解决了再说:

1. 先补全缺失的循环闭合括号

看你贴的代码,外层的foreach ($users as $user)完全没有闭合的大括号!PHP遇到这种语法错误会直接中断脚本执行,连后面的Lorem ipsum都不会输出,自然页面一片空白。

修正后的完整代码应该是这样的:

<div id="content__admin-users">
<?php
// 开启错误显示,方便后续排查(可选但推荐)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$query = "SELECT ID, voornaam, achternaam, email, Administrator From User";
$result = $database->prepare($query);
try{
    $result->execute(array());
    $users = $result->fetchAll();
}catch(PDOException $e){
    echo "Er is een fout opgetreden, error: $e";
}
foreach ($users as $user){
    foreach ($user as $detail){
        print_r($detail);
    }
} // 补上外层foreach的闭合大括号!
?>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Repudiandae minima repellat nulla voluptatum modi necessitatibus dolorem rerum laborum aliquam saepe quos rem, possimus placeat debitis asperiores, officiis autem odio iste.
</div>

2. 开启错误显示,快速定位后续问题

默认情况下PHP不会在页面上显示错误,我在上面的代码里加了错误显示的配置,这样如果还有其他语法或运行时问题,会直接在页面上显示出来,不用再瞎猜缓存的问题。

3. 关于你怀疑的缓存问题

你已经做了几乎所有能做的缓存清理操作,但如果脚本本身因为语法错误根本没执行,缓存根本不是问题。等你把语法错误修复后,如果还是出现页面延迟更新的情况,可以做这两个检查:

  • 用phpinfo()查看opcache状态:确认opcache.enable是Off,opcache.revalidate_freq是0,确保配置真的生效了。
  • 检查Apache的缓存配置:看看httpd.conf里有没有开启mod_expires或mod_cache,可以临时注释掉相关配置测试。

4. 优化数据输出(可选)

另外,fetchAll()默认返回的是索引+关联的混合数组,你的嵌套foreach会把每个用户的字段输出两次。如果想更清晰地输出用户数据,可以指定只返回关联数组:

$users = $result->fetchAll(PDO::FETCH_ASSOC);

然后直接按字段输出,比如:

foreach ($users as $user){
    echo "ID: {$user['ID']}, Naam: {$user['voornaam']} {$user['achternaam']}, Email: {$user['email']}<br>";
}

内容的提问来源于stack exchange,提问作者Nemoko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:03:11