如果isset返回false,则不初始化变量

时间:2012-07-30 03:44:08

标签: php codeigniter isset

我有一个这样简单的陈述:

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

这没关系。然后使用codeigniter活动记录在插入查询中使用数据数组。现在我想问一下,如果isset返回false,那么就不要初始化$ data ['title']。

我知道替代方案

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

我想知道如何使用上层指令执行相同的if

3 个答案:

答案 0 :(得分:2)

我能看到的最短路径是:

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

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

答案 1 :(得分:0)

你可以做到:

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

在php 5.3或更高版本中。

但我不推荐它,因为这是令人困惑的混乱代码。

答案 2 :(得分:0)

您可以这样做,但使用if更具可读性。

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

编辑: 使用循环的示例。

foreach (array('title', 'body', 'footer') as $key) {
  if (isset($domain[$key])) {
   $data[$key] = $domain[$key];
  }
}