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

次のように、別の 3 項ステートメントを使用し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();

割り当てたい変数が変数と同じ場合は、2 番目の 3 項ステートメントを に$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 に答える