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

PHP语法错误求助:Parse error: unexpected end of file 排查

解决PHP「Parse error: syntax error, unexpected end of file」错误

问题原因

你的错误源于代码中使用了短标签<?,若PHP配置里的short_open_tag未开启,PHP会无法识别<? if ($user_data['role'] === 'admin') : ?>这行的条件逻辑,导致后续的endif;找不到对应的起始标记,解析到文件末尾时就抛出了"unexpected end of file"错误。

修复步骤

将短标签替换为完整的PHP标签即可解决问题:

把这一行:

<? if ($user_data['role'] === 'admin') : ?>

修改为:

<?php if ($user_data['role'] === 'admin') : ?>

修改后的完整代码:

<?php
//require_once 'имя_файла.php'; подключение файла к другому
$animals = require_once $_SERVER['DOCUMENT_ROOT'] . '/data/animals-data.php'; // благодаря return в файле массив оказывается в переменной 
$user_data = require_once $_SERVER['DOCUMENT_ROOT'] . '/data/user-data.php';

// $_SERVER суперглобальный массив который хранит информацию о сервере 
// DOCUMENT_ROOT - корневая директория сервера 
?>

<!DOCTYPE html>
<html lang="ru">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Зверинец</title>
</head>

<body>
    <section>
        <h2>Все животные</h2>

        <?php foreach ($animals as $animal) : ?>
            <div>
                <h3><?= $animal['name'] ?></h3>
                <div>
                    <img height="300" src="/img/<?= $animal['img'] ?>">
                </div>
                <?php if ($user_data['role'] === 'admin') : ?>
                    <button>Перейти к редактированию</button>
                <?php endif; ?>
            </div>
        <?php endforeach; ?>
    </section>
</body>

</html>

补充说明

  • <?=属于短输出标签,在PHP 5.4及以上版本中默认启用,即便short_open_tag关闭也能正常工作,因此可以保留使用。
  • 若你坚持使用短标签<?,可在php.ini中设置short_open_tag = On,但从代码兼容性和可移植性角度,建议始终使用完整的<?php标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:08:15