0

我有这个 php 代码行

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

isset 速记有问题,因为当我print_r($data['viewData']['filter']在 else 处于活动状态时,不返回任何内容/null/empty。

有什么问题?

编辑,添加更多信息:

控制器内部代码:

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

4

1 回答 1

2

我真的不明白你的意思是什么,它返回“无/空/空”,因为一个变量不能一次返回所有 3 个。isset 不检查是否存在任何数据,它只检查是否设置了变量或数组索引。如果您想确保它已设置且不为空,请尝试以下操作:

if (!empty($parameters['filter']))
于 2012-01-21T18:48:08.460 回答