0
$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();

我可能遗漏了一些完全明显的东西,但我似乎无法弄清楚!

4

2 回答 2

1

使用另一个三元语句 withisset()将键值分配给变量,如下所示:

$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.

于 2013-11-09T09:55:46.890 回答
0

哇,不好意思,发帖后就知道了。我只需要首先将我知道肯定会存在的数组部分分配给一个变量。

$part1 = $this->news_options[$this->reference];

$loc = (isset($part1['generate'])) ? $part1['generate'] : array();
于 2013-11-09T09:56:04.317 回答