1

我知道这似乎是一个愚蠢的问题,通过更多的研究,我可能会找到答案,但我有一个截止日期来寻求帮助。

使用 codeigniter 我试图查看 url 中的“ID”是“uID”(用户 ID)还是“sID”(系统 ID)。

我使用的代码是:

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

当我使用它时,我得到一个服务器错误,说网站暂时关闭或正在建设中。有任何想法吗?

在此先感谢您的帮助。通常我会花更多时间自己寻找答案,但我今晚没有时间。

4

2 回答 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'):
}

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

于 2012-01-29T04:33:14.907 回答
2

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

我猜如果uID未在请求中设置,$this->input->get将返回nullfalse类似。即你不需要isset,返回值应该已经是falsey 了

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

于 2012-01-29T04:33:15.060 回答