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

升级至PHP8后functions.php出现E_PARSE错误:未闭合'{'求助

解决PHP8升级后的E_PARSE语法错误

问题根源分析

你的代码存在几处语法不规范问题,触发了PHP8更严格的语法检查机制,导致E_PARSE错误:

  • PHP标签转义错误:代码里出现?&gt;、&lt;?这类HTML转义后的标签,PHP无法识别,需替换为标准的?>和<?php标签。
  • HTML标签未闭合:所有<tr>标签都没有对应的</tr>,虽然不直接触发PHP错误,但会混淆代码结构,增加定位问题的难度。
  • PHP代码块缺失起始标签:最后执行return ob_get_clean();前没有正确的<?php起始标签,导致PHP解析时判定函数逻辑未闭合(对应报错里的未闭合{)。

修正后的完整代码

function price_table_function() {
    ob_start();
    $id = get_the_ID();
    $uvp = get_field( 'uvp', $id );
    $angebot = get_field( 'angebot', $id );
    $sale = ($angebot / $uvp)*100;
    $saleprice = $uvp - $angebot;
?>
<table width="100%" class="price-table">
    <tr>
        <td>UVP</td>
        <td><?php echo $uvp; ?> €</td>
    </tr>
    <tr>
        <td>Reduzierung</td>
        <td>-<?php echo $saleprice; ?> €</td>
    </tr>
    <tr class="sale">
        <td>Angebotspreis</td>
        <td><?php echo $angebot; ?> € (-<?php echo number_format( $sale, 0, ',', '.' ); ?> %)</td>
    </tr>
</table>
<?php
    return ob_get_clean();
}

关键修正说明

  1. 替换所有转义后的PHP标签为标准格式,确保PHP能正确识别代码块边界。
  2. 为每个<tr>添加</tr>闭合标签,修复HTML结构完整性。
  3. 在return语句前补充<?php起始标签,让函数的PHP逻辑完整闭合。

PHP8对语法规范性要求远高于旧版本,之前能兼容的不规范写法现在会直接触发解析错误,修正以上问题后即可解决E_PARSE错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:50:18