3

我有一个这样的 URL:

http://mysite.com/index.php?somename=somevalue

我通常通过以下方式检查 somename 是否存在:

if (isset($_GET['somename'])) {

但是,我最近看到很多人这样做:

if ($_GET['somename'] != NULL) {

我的问题是,任何一种方式都比另一种更好吗?

4

3 回答 3

6

不同于null支票,

isset($_GET['somename']

不会抛出“未定义索引”通知,因此绝对是两者中更可取的。

array_key_exists("somename", $_GET); 

也将是有效的。

null但是,如果您想禁止空值,您可能希望将此与检查结合使用。

于 2012-06-27T22:31:42.833 回答
0

这些说法是不同的。

isset()将检查变量是否包含值,而第二条语句检查变量是否等于 NULL。

在您的情况下,使用 isset() 来确定 $_GET['somename'] 是否存在。

于 2012-06-27T22:32:21.233 回答
0

最好的方法通常是两者都做。isset 检查变量是否存在,同时您还应该检查它是否不为 NULL,这样它就不会破坏以后的任何检查。

if(isset($_GET['somevalue']) && $_GET['somevalue'] != NULL)
于 2012-06-27T22:35:29.180 回答