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

PHP:判断变量未定义则赋值并自增的更短语法咨询

更简洁的PHP语法实现方案

嘿,你已经用三元表达式迈出了简化的一步,其实PHP里还有更简洁、可读性更好的写法来实现这个逻辑!

先回顾下原逻辑:如果$foo未定义,先将其赋值为$bar,然后无论$foo初始状态如何,都要加上$bar。我们可以利用PHP的空合并运算符来进一步简化:

分两行的极简清晰版(PHP 7.4+)

$foo ??= $bar;
$foo += $bar;

??=是空合并赋值运算符,作用是当左侧变量未定义或为null时,将右侧值赋给它,完美替代原代码里的if (!isset($foo)) { $foo = $bar; },代码更短且语义明确。

一行搞定版(PHP 7.0+)

如果想压缩到一行,也可以直接用空合并运算符组合加法:

$foo = ($foo ?? $bar) + $bar;

这个写法的逻辑和原代码完全一致:先判断$foo是否存在,存在就用原值,不存在就用$bar,然后统一加上$bar,比你写的三元表达式少了不少字符,可读性也更强。

对比你给出的三元写法,这两种方案都更简洁,而且利用PHP原生的语义化运算符,避免了三元表达式里嵌套赋值带来的可读性损耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:37:31