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

PHP三元运算符下Span标签闭合渲染异常,需仅为Cost值包裹Span标签的技术问询

问题修复:正确为Cost内容包裹Span标签

你的核心问题是三元运算符里的Span标签闭合逻辑错误——之前的修改只在价格分支添加了</span>,但免费分支没有闭合标签,导致HTML结构损坏。咱们调整一下逻辑,确保只有Cost相关的内容(Free或价格数值)被<span>完整包裹,Number部分完全独立在外。

正确的PHP代码实现

$json = '[{&quot;Number&quot;:&quot;333567&quot;,&quot;Cost&quot;:0},{&quot;Number&quot;:&quot;333568&quot;,&quot;Cost&quot;:7500},{&quot;Number&quot;:&quot;333569&quot;,&quot;Cost&quot;:7500}]';
$options = json_decode($json, true);
$newArray = []; // 提前初始化数组,避免未定义变量警告

foreach ($options as $key => $value) {
    // 核心修正:把<span>放在三元运算符外部,确保两个分支都能正确闭合标签
    $newArray[$value['Number']] = $value['Number'] . " <br /> <span>" . 
        ($value['Cost'] / 100 == 0 
            ? 'Free' 
            : '&pound;' . ($value['Cost'] / 100)) . 
        "</span>";
}

echo '<br><br>';
echo json_encode($newArray);
echo '<br>';

代码说明

  1. 初始化数组:先声明$newArray = [],这是个好习惯,能避免PHP抛出未定义变量的警告。
  2. Span标签逻辑:<span>标签在三元运算前打开,不管是免费还是付费场景,都会在三元运算结束后统一闭合</span>,确保HTML结构完整无缺。
  3. 最终输出结构:生成的内容完全符合需求:
    • 免费项:333567 <br /> <span>Free</span>
    • 付费项:333568 <br /> <span>&pound;75</span>

这样既满足了“仅Cost内容被Span包裹”的要求,也彻底解决了标签未闭合的渲染异常问题。

内容的提问来源于stack exchange,提问作者Dragan Petrovic FSD

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:51:10