我有一个如下所示的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)