0

我有一个这样的简单声明:

$data['title']  =   isset($domain['title']) ? $domain['title'] : '';

还行吧。然后在使用 codeigniter 活动记录的插入查询中使用数据数组。现在我想问有没有一种方法,如果isset返回false,那么不要初始化$data['title']。

我知道这里的替代方案

if(isset($domain['title'])){
   $data['title'] = $domain['title'];
}

我想知道我们如何if对上面的指令做同样的事情?

4

3 回答 3

2

我能看到的最短方法是:

if (isset($domain['title'])) $data['title'] = $domain['title'];

但坚持你的第二个例子,它更具可读性。

于 2012-07-30T03:46:51.320 回答
0

你可以这样做:

$data['title'] = !isset($domain['title'] ? : $domain['title'];

在 php 5.3 或更高版本中。

但我不推荐它,因为它是丑陋的混乱代码。

于 2012-07-30T03:47:26.720 回答
0

你可以这样做,但 useif更具可读性。

isset($domain['title']) && ($data['title'] = $domain['title']);

编辑:使用循环的示例。

foreach (array('title', 'body', 'footer') as $key) {
  if (isset($domain[$key])) {
   $data[$key] = $domain[$key];
  }
}
于 2012-07-30T03:50:25.013 回答