$options = ($options ?: array()) + $this->options;
由于
答案 0 :(得分:0)
这相当于:
if (!$options)
$options = array();
$options = $options + $this->options;
?:
是三元运算符。如果$options
计算结果为true,则返回,否则返回空数组。
给定两个数组的+operator
通过连接它们来创建一个新数组
答案 1 :(得分:0)
简而言之:
通过将
$options
数组合并到$this->options
来创建数组$options
。
$options ?: array()
如果$options
truthy (可能是因为它存在且不是false
),这将返回$options
值,否则它将返回空数组。 It's shorthand syntax for:
$options ? $options : array()
所以这个结果是一个数组。为此,$this->options
数组通过+
添加。 +
array union operator添加了从右到左的任何键,这些键在那里尚未存在。
因此结果是两个选项数组之间的类型安全(如果$options
不是数组)合并。请注意,“类型安全”是相对的,如果$options
是数字或对象或其他东西,这仍然会产生错误;但是我们假设此时$options
可以是false
或null
或array
,所以它可能正常。