为什么这个简写的三元运算符抛出一个错误?



我在一个方法中有这段代码:

$remainder_payment = $this->product_info['remainder_payment'] ?: 0;

我得到这个错误:

未定义索引:remainder_payment in…

在我的脑海中,我设置$remainder_payment为$this->product_info['remainder_payment']如果$this->product_info['remainder_payment']不为假,否则$remainder_payment = 0。

在手册中查看这个表,如果一个项目在undefined中,那么它应该计算为false,但是我得到了一个错误。

您是对的,三元操作符本质上是一个if语句,并且像if语句一样,如果您试图访问不存在的数组键,它将抛出警告。

你想要的是空合并算子??

$remainder_payment = $this->product_info['remainder_payment'] ?? 0;

最新更新