使用 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
或类似的内容。 IE。你不需要isset
,返回值应该已经是falsey。
我建议您花一点时间阅读 PHP 权威指南 isset Andempty。