php isset shorthand else返回数组无效

时间:2012-01-21 18:12:41

标签: php codeigniter isset shorthand

我有这个PHP代码行

$data['viewData']['filter'] = isset($parameters['filter']) ? $parameters['filter'] : array('filter1', 'filter2', 'filter3', 'filter4');

isset速记有问题,因为当我print_r($data['viewData']['filter']并且其他人处于活动状态时,不返回任何/ null /空。

可能出现什么问题?

编辑,添加更多信息:

控制器内的代码:

if (isset($parameters['filter']))
{
    $data['viewData']['filter'] = $parameters['filter'];
}
else
{
    $data['viewData']['filter'] = array('filter1', 'filter2', 'filter3', 'filter4');              
}
$data['viewData']['query']   = $parameters['search'];
$data['viewData']['results'] = $searchResults;
$data['view'] = 'searchResults';
$this->load->view('includes/template', $data);

代码内部视图:

prePrint($viewData['apis']);

当其他人进入

时我什么也得不到

Codeigniter用作框架 * prePrint只是一个包含<pre>print_r();

的自定义函数

1 个答案:

答案 0 :(得分:2)

我真的不明白你的意思是它返回“nothing / null / empty”,因为变量不能同时返回所有这3个。 isset不检查是否存在任何数据,它只检查是否设置了变量或数组索引,所以如果你必须确保它已经设置并且还包含数据,你将要尝试这样:

if (isset($parameters['filter']) && $parameters['filter'])