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

PHP中是否存在反向版本的三元运算符支持条件赋值?

答案

你写的这种反向三元赋值写法根本跑不通,会直接触发PHP语法错误。

原因很简单:PHP里三元运算符返回的是运算结果值,不是可以被赋值的变量引用,既不能放在等号左边当左值,也不能直接在三元返回的结果后面加[]做数组追加。而且你写的$foo[]、$bar[]本身就是数组追加操作的简写,本身就不是能被赋值的结构,放在三元分支里从语义上就不对。

要想用三元实现和那段if完全一样的逻辑,用可变变量写就可以,代码很短:

${condition ? 'foo' : 'bar'}[] = $value;

逻辑和if版本完全一致:条件成立就给$foo追加$value,不成立就给$bar追加$value。

要是觉得可变变量的写法可读性不好,也可以用引用的方式实现,效果一样:

$target = &(condition ? $foo : $bar);
$target[] = $value;
unset($target); // 用完记得解除引用,避免后面误操作改到原数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:36:27