isset 可以与 CodeIgniter 的 get 方法一起使用吗?

问题描述 投票:0回答:2

使用 CodeIgniter 我试图查看 URL 中的“ID”是否是“uID”(用户 ID)或“sID”(系统 ID)。

我使用的代码是:

    if(isset($this->input->get('uID'))) {
        $getID = $this-input->get('uID');
    } else {
        $getID = $this->input->get('sID');
    }

当我使用它时,我收到服务器错误,提示网站暂时关闭或正在建设中。有什么想法吗?

php codeigniter get isset
2个回答
4
投票

您收到的警告可能是 500 错误 - 这意味着您的服务器未设置为向您显示错误,或者您没有在 index.php 文件中启用它。

您收到但没有看到的错误是:“致命错误:无法在写入上下文中使用函数返回值”,因为您无法在函数上使用 isset。

如果可以的话,它不会做你所期望的事情,因为 CI 的

$this->input->get('key')
总是返回一个值——如果键不存在,它会返回 false。

因此,为了完成您想要做的事情,您可以写:

$getID = $this->input->get('uID') ? $this->input->get('uID') : $this->input->get('sID');

根据下面的评论,我想我也会以一种对您有意义的方式提供它:

if($this->input->get('uID')) {
  $getID = $this->input->get('uID');
}
else {
  $getID = $this->input->get('sID'):
}

这两种解决方案在功能上是相同的。


1
投票

isset
仅适用于变量
$this->input->get()
是一个函数调用。这会给你一个错误。

我猜测,如果请求中未设置

uID
$this->input->get
将返回
null
false
或类似的内容。 IE。你不需要
isset
,返回值应该已经是falsey

我建议您花一点时间阅读 PHP 权威指南 isset Andempty

© www.soinside.com 2019 - 2024. All rights reserved.