isset()vs检查PHP中是否存在变量

时间:2015-08-30 22:56:48

标签: php

以下两个函数调用如何比较以检查GET调用或POST调用是否存在变量?

if(isset($_GET['var']))
if($_GET['var'])

两者都做好了自己的工作,但有时候没有 isset()我会收到警告:

PHP注意:未定义的索引:第XX行的var

更新 这是一个$ _GET而不是$ GET。我也知道它与GET / POST无关。我正在讨论的是变量检查而不是HTTP方法。谢谢。

1 个答案:

答案 0 :(得分:1)

$ _ GET ['']通常是从浏览器中检索出来的,所以如果您有以下内容:     www.hello.com/index.php?var=hello

您可以使用:

if(isset($_GET['var'])) {
echo $_GET['var']; // would print out hello
}

使用isset()将停止未定义的索引错误,因此,如果您只有www.hello.com/index.php,那么即使没有设置var也不会看到错误。

帖子通常是在一个页面向另一个页面发布信息时,方法是相同的但使用$ _POST ['']而不是$ _GET ['']。您有表单发布信息的示例:

<form method="post" action="anotherpage.php">
    <label></label>
    <input type="text" name="text">
</form>

在anotherpage.php中获取信息的方式如下:

$text = isset($_POST['text']);
echo $text; // would echo what ever you input into the text field on the other page

在坚果壳中,如果没有设置名称,只需输入$ _GET [&#39; name&#39;]就会出错。 使用isset($ _ GET [&#39; name&#39;])将检查var名称在继续之前是否有任何值。

不确定这是不是你所追求的,但问题是这是我对答案的最佳猜测