php isset简写否则返回数组不起作用

发布于 2024-12-28 12:03:07 字数 977 浏览 0 评论 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 只是一个自定义函数,包含

print_r();

I have this php code line

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

Is something wrong with the isset shorthand because when I print_r($data['viewData']['filter'] with else being active, returns nothing/null/empty.

What could be wrong?

Edit, to add more info:

Code inside the controller:

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

Code inside view:

prePrint($viewData['apis']);

And I get nothing when the else enters

Codeigniter is used as framework
*prePrint is just a custom function that contains <pre> and print_r();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

农村范ル 2025-01-04 12:03:07

我不太明白你所说的返回“nothing/null/empty”是什么意思,因为变量不能同时返回所有这三个。
isset 不会检查是否存在任何数据,它仅检查变量或数组索引是否已设置。如果您想确保它已设置且不为空,请尝试以下操作:

if (!empty($parameters['filter']))

I don't really understand what you mean by it returns "nothing/null/empty" since a variable cannot return all 3 of those at once.
isset doesn't check to see if any data exists, it only checks to see if the variable or array index is set. If you want to both make sure it’s set and not empty, try this:

if (!empty($parameters['filter']))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文