有关php变量赋值的信息

时间:2014-11-28 14:17:41

标签: php arrays variable-assignment var

你能帮帮我吗? 有人可以解释这行PHP代码的含义吗?

$options = ($options ?: array()) + $this->options;

由于

2 个答案:

答案 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可以是falsenullarray,所以它可能正常。