检查数值时,使用isset还是=NULL更好?

3

我有一个URL,格式如下:

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

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

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

然而,我最近看到很多人这样做:
if ($_GET['somename'] != NULL) {

我的问题是,这两种方式哪一种更好?
3个回答

6
null检查不同,
isset($_GET['somename']

不会触发“未定义索引”提醒,因此它绝对是两者中更可取的选择。

array_key_exists("somename", $_GET); 

也可以是有效的。

如果您想禁止空值,则可能需要将其与 null 检查相结合。


1
注:这种方法无法捕获“已定义但为空”的情况,但当然仍然是更好的方法。 - Jon
@Jon 你说得对,isset() 检查不到那个,但是 array_key_exists() 可以!我会加上的,谢谢。 - sandradev
不会的,为什么会呢?请注意我是在指 ?somename= - Jon

0
通常最好的方法是两者都做。isset检查变量是否存在,同时您还应该检查它是否不为NULL,以便它不会破坏任何后续检查。
if(isset($_GET['somevalue']) && $_GET['somevalue'] != NULL)

0

这些语句是不同的。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接