2012-06-27 60 views

回答

6

不像null检查,

isset($_GET['somename'] 

不会引发“未定义指数”的通知,所以它肯定是越优选两个。

array_key_exists("somename", $_GET); 

也是有效的。

但是,如果您不想使用空值,您可能需要将其与null检查相结合。

+1

脚注:这不会捕获另一个选项将会“定义但空的”情况。当然,这仍然是更好的方法。 – Jon

+0

@你说得对,'isset()'检查不会捕获这个,但'array_key_exists()'应该!我会补充一点,谢谢。 – sandradev

+0

不,它不会。为什么要这样?请注意,我指的是'?somename ='。 – Jon

0

这些陈述是不同的。

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

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

0

最好的方法是通常做到两者兼而有之。 isset检查变量是否存在,同时你也应该检查它是否不是NULL,以便它不会破坏任何后来的检查。

if(isset($_GET['somevalue']) && $_GET['somevalue'] != NULL)