【问题标题】:Does isset work with GET?isset 可以与 GET 一起使用吗?
【发布时间】:2012-01-29 04:25:00
【问题描述】:

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

使用 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 server-error


    【解决方案1】:

    您收到的警告可能是 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'):
    }
    

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

    【讨论】:

    • 好的,可以。谢谢。我不明白你的代码。什么是'?'
    • condition ? execute_if_the_condition_was_true : exe_if_condition_false ... 称为三元运算符
    • 如果未设置 uID,是否会将 $getID 设置为 sID?
    • 是的。我现在明白了。非常感谢
    【解决方案2】:

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

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

    我建议您花一点时间阅读The Definitive Guide To PHP's isset And empty

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 2018-02-16
      • 2020-06-30
      • 2014-11-15
      • 2011-12-07
      • 2011-11-20
      • 2011-06-02
      相关资源
      最近更新 更多