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

PHP中echo结合空合并运算符的输出异常问题求助

问题原因与解决方案

这是PHP运算符优先级导致的问题:

  • 第一段代码echo $open_hour ?? 20;中,??(null合并运算符)直接作用于未定义的$open_hour,符合预期返回默认值20。
  • 第二段代码echo "My text ".$open_hour ?? 20;里,字符串连接符.的优先级比??更高,实际执行顺序是先计算"My text " . $open_hour——当$open_hour未定义时,PHP会把它当作空字符串处理,连接结果为"My text "(非null值),因此?? 20的默认值逻辑不会触发,最终输出这个字符串。

修复方案

给$open_hour ?? 20加上括号,强制改变执行优先级:

echo "My text " . ($open_hour ?? 20);

这样会先判断$open_hour是否存在/非null,不存在时使用默认值20,再和前面的字符串拼接,最终输出My text 20。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:35:25