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

为菜单链接设置active类时遇语法错误,求排查及代码有效性验证

问题分析与修复方案

嘿,我一眼就发现导致这个语法错误的原因啦!你的代码里有两处明显的语法问题:

错误点详解

  1. basename()函数的参数逻辑错误
    你把整个比较表达式$_SERVER['PHP_SELF'] == 'index.php'作为参数传给了basename(),这完全不符合函数的使用逻辑。正确的做法是先通过basename($_SERVER['PHP_SELF'])提取当前页面的文件名,再和目标文件名进行比较。

  2. 三元运算符后多余的分号
    三元运算符的标准结构是(条件 ? 真分支结果 : 假分支结果),你在每个三元表达式的末尾额外加了一个;,这让PHP解析器无法正确识别语法结构,从而抛出了unexpected ';'的错误。

修正后的完整代码

<ul class="main-nav nav navbar-nav">
    <li class="<?= (basename($_SERVER['PHP_SELF']) == 'index.php') ? 'active' : '' ?> ">
        <a href="index.php">Эхлэл</a>
    </li>
    <li class="<?= (basename($_SERVER['PHP_SELF']) == 'product.php') ? 'active' : '' ?> ">
        <a href="product.php">Бүтээгдэхүүн</a>
    </li>
    <li class="<?= (basename($_SERVER['PHP_SELF']) == 'about.php') ? 'active' : '' ?> ">
        <a href="about.php">Бидний тухай</a>
    </li>
    <li class="<?= (basename($_SERVER['PHP_SELF']) == 'contact.php') ? 'active' : '' ?> ">
        <a href="contact.php">Холбоо барих</a>
    </li>
</ul>

效果说明

修正后的代码可以正常工作了:当用户访问某个页面时,对应的<li>标签会自动添加active类,实现菜单的高亮效果。

内容的提问来源于stack exchange,提问作者batgerel.e

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:48:35