$loc = (isset($this->news_options[$this->reference]['generate']))
? $this->news_options[$this->reference]['generate'] : array();
将它放在2行上,这样更容易阅读。所以基本上有没有办法引用问号后检查的初始数组键?我无法将其存储为变量 因为如果未设置密钥,我将收到错误。
那么还有其他方法可以在PHP中执行以下操作吗?
$loc = (isset($this->news_options[$this->reference]['generate'])) ? <-assign that to loc : array();
我可能会遗漏一些完全明显的东西,但我似乎无法解决这个问题!
答案 0 :(得分:1)
使用另一个带isset()
的三元语句将键值赋给变量,如下所示:
$generate = (isset($this->news_options[$this->reference]['generate']) ?
$this->news_options[$this->reference]['generate'] : NULL ;
现在你可以做到:
$loc = (isset($generate))
? $this->news_options[$this->reference]['generate'] : array();
如果您要分配的变量与$generate
变量相同,则只需将第二个三元语句中的$this->news_options[$this->reference]['generate']
替换为$generate
。
答案 1 :(得分:0)
对不起,发布后就知道了。我只需要首先将我知道的数组部分分配给变量。
$part1 = $this->news_options[$this->reference];
$loc = (isset($part1['generate'])) ? $part1['generate'] : array();