在PHP中有没有缩短这个三元语句的方法?

在PHP中有没有缩短这个三元语句的方法?,php,arrays,Php,Arrays,把它放在两行上,这样更容易阅读。那么,基本上有没有任何方法可以引用在问号之后检查的初始数组键?我无法将其存储为变量 因为如果没有设置密钥,我将得到一个错误 那么,在PHP中是否还有其他类似于以下内容的方法 $loc = (isset($this->news_options[$this->reference]['generate'])) ? $this->news_options[$this->reference]['generate'] : array(); $loc=

把它放在两行上,这样更容易阅读。那么,基本上有没有任何方法可以引用在问号之后检查的初始数组键?我无法将其存储为变量 因为如果没有设置密钥,我将得到一个错误

那么,在PHP中是否还有其他类似于以下内容的方法

$loc = (isset($this->news_options[$this->reference]['generate']))
? $this->news_options[$this->reference]['generate'] : array();

$loc=(设置($this->news_选项[$this->reference]['generate']) 使用另一个带有
isset()
的三元语句将键值分配给变量,如下所示:

$loc = (isset($this->news_options[$this->reference]['generate'])) ? <-assign that to loc : array();
现在您可以执行以下操作:

$generate = (isset($this->news_options[$this->reference]['generate']) ?
$this->news_options[$this->reference]['generate'] : NULL ;

如果您要分配的变量与
$generate
变量相同,那么只需将第二个三元语句中的
$this->news\u options[$this->reference]['generate']
替换为
$generate

哇,抱歉,发布后马上解决了这个问题。我只需要首先将数组中我知道肯定存在的部分分配给一个变量

$loc = (isset($generate))
? $this->news_options[$this->reference]['generate'] : array();

(这基本上就是建议的:PYou可以创建一个通用函数来实现这一点,无论何时需要它,只要调用它即可。
$part1 = $this->news_options[$this->reference];

$loc = (isset($part1['generate'])) ? $part1['generate'] : array();