我知道这似乎是一个愚蠢的问题,随着更多的研究,我可能会找到答案,但我有一个最后期限来帮助你。
使用codeigniter我试图查看url中的"ID"是"uID"(用户ID)还是"sID"(系统ID)。
我使用的代码是:
if(isset($this->input->get('uID'))) {
$getID = $this-input->get('uID');
} else {
$getID = $this->input->get('sID');
}
当我使用它时,我会收到一个服务器错误,说网站暂时关闭或正在建设中。有什么想法吗?
提前感谢您的帮助。通常我会花更多的时间自己寻找答案,但今晚我没有时间。
您收到的警告可能是一个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'):
}
这两种解决方案在功能上是相同的。
isset
仅适用于变量$this->input->get()
是一个函数调用。这会给你一个错误。
我猜,如果请求中没有设置uID
,$this->input->get
将返回null
或false
或诸如此类的内容。也就是说,您不需要isset
,返回值应该已经是falsey。
我建议你花点时间来阅读PHP的isset和empty的最终指南。