我知道这似乎是一个愚蠢的问题,通过更多的研究,我可以找到答案,但我有一个截止日期来取悦帮助。
使用codeigniter我试图查看网址中的'ID'是'uID'(用户ID)还是'sID'(系统ID)。
使用的代码是:
if(isset($this->input->get('uID'))) {
$getID = $this-input->get('uID');
} else {
$getID = $this->input->get('sID');
}
当我使用它时,我收到服务器错误,说网站暂时停机或正在施工。有任何想法吗?
提前感谢您的帮助。通常我会花更多的时间自己寻找答案但我今晚没有时间。
答案 0 :(得分: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 :(得分:2)
isset
仅适用于变量
$this->input->get()
是函数调用。这会给你一个错误。
我猜如果请求中未设置uID
,$this->input->get
将返回null
或false
或其他类似内容。即您不需要isset
,返回值应该已经 falsey 。
我建议您花一点时间阅读The Definitive Guide To PHP's isset And empty。