如何 return $this->address[$type] ?? [];工作?

How return $this->address[$type] ?? []; work?

我在使用 laravel 模型时遇到语法表达式。

  public function address($type)
    {
        return $this->address[$type] ?? [];
    }

我不明白这是怎么回事

 return $this->address[$type] ?? [];

工作?

这是空合并操作(更多信息请见 https://en.wikipedia.org/wiki/Null_coalescing_operator#PHP)。这是 isset 的语法快捷方式,实际上:

return $this->address[$type] ?? [];

可以读作:

if (isset($this->address[$type])) {
  return $this->address[$type];
} else {
  return [];
}