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

PHP中能否通过OR运算符给变量设置多个可选取值?

错误原因

你写的$shippingCost = $selectedShipping['cost'] || null;不符合PHP语法逻辑:PHP中||是逻辑运算符,执行后只会返回布尔值true或false,不会返回第一个符合条件的表达式本身,自然得不到你期望的运费值或者null。另外如果$selectedShipping数组未定义或者不存在cost键,还会抛出未定义变量/未定义数组键的警告。

解决方案

  • PHP 7及以上版本直接用**NULL合并运算符??**即可,这是最适配你需求的写法:
$shippingCost = $selectedShipping['cost'] ?? null;

这个运算符会自动判断左侧的数组键是否存在且值不为null,满足条件就返回左侧的$selectedShipping['cost'],否则返回右侧的null,不会抛出未定义警告。

  • 如果是PHP 5.x的旧版本,用isset()配合三元运算符实现:
$shippingCost = isset($selectedShipping['cost']) ? $selectedShipping['cost'] : null;
  • 如果你需要额外过滤空字符串、0、false这类“空值”,不是只判断值是否存在,可以用empty()判断:
$shippingCost = !empty($selectedShipping['cost']) ? $selectedShipping['cost'] : null;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:00:05