哪个更适合检查值:isset 或 = NULL


Which is better for checking values: isset or = NULL?

我有一个如下所示的URL:

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

我通常通过以下方式检查某个名称是否存在:

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

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

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

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

null检查不同,

isset($_GET['somename']

不会抛出"未定义索引"的通知,所以绝对是两者中更可取的。

array_key_exists("somename", $_GET); 

也将有效。

但是,如果要禁止空值,则可能需要将其与null检查结合使用。

这些陈述是不同的。

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

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

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

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