【发布时间】:2021-08-13 23:48:39
【问题描述】:
我有这个 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']);
当 else 进入时我什么也得不到
Codeigniter 用作框架
*prePrint 只是一个包含<pre> 和print_r(); 的自定义函数
【问题讨论】:
-
代码没有问题。你确定这个变量没有受到其他任何东西的影响吗?
-
一点也不,这很奇怪,因为如果 isset 为 true,则返回应该返回的数据,如果不是,则不返回任何内容
-
你确定它符合 else 条件吗?尝试将它放在 if/else 块中并进行一些调试输出,以确认 $parameters['filter'] 确实没有设置,而您认为它不是...
-
好吧,我已经复制了你的 sn-p 并对其进行了测试,它对我来说没有问题。失败的原因必须在代码的另一部分。
-
视图内的代码返回的是空值?
$viewData['apis']设置了吗?您正在省略视图定义。我很困惑,因为您在代码中没有设置一个名为“api”的字段,但您尝试在视图中读取它。
标签: php codeigniter isset shorthand