if (!is_null($_GET[SH]))
{
//Bla bla bla bla you don't need to look
$data=$_GET[SH]. " - " . date("c");
putTotalData($filename."complete.txt",$_GET[SH]);
putData($filename.".txt", $data);
}
基本上我正在测试是否设置了$ _GET [SH]。但是,如果我这样做的话,我会收到警告,说它没有设置。然后代码工作正常。
这样做的方法是什么?有没有办法测试关联数组是否有特定的键?
答案 0 :(得分:2)
只需使用isset
这样的功能:
if(isset($_GET['sh'])) { /* your code */ } else { /* your code */ }
答案 1 :(得分:1)
is_null
检查值是null
类型(类似于is_int
,is_string
等)。如果要传入变量,则此变量必须存在。如果没有,你会收到警告。
isset
是一种语言结构,它可以显式地处理不存在的变量。这是它的目的。将is_null
替换为isset
。
巧合的是,$_GET
参数永远不会是null
,最糟糕的是它们是一个空字符串。否则参数根本不存在。这就是你所看到的:不存在的变量触发警告,然后用值null
代替(因为它还有什么呢?)。
答案 2 :(得分:0)
您可以使用isset($var)
,但是,我通常需要一个默认值,所以我这样做:
$action = (isset($_GET['action'])) ? $_GET['action'] : 'default';
答案 3 :(得分:0)
empty
检查var是否设置为空('',0,false,null)
if(!empty($_GET['SH'])) {
//something
}