我知道,将字符串分配给一个变量后,可以使用该变量作为索引数组来表示单个字符,但是为什么下面的代码使用关联数组时不会因为缺少必需项而失败呢?为什么 'isset' 不会在明确不存在的数组键上抛出 FALSE?
unset($a);
$a = 'TESTSTRING';
if(!isset($a['anystring'])){
die('MISSING REQUIRED');
}else{
var_dump($a['anystring']);
}
上面的例子将输出:
string(1) "T"
编辑:
正如Jelle Keiser所指出的那样,这可能是更安全的做法:
if(!array_key_exists('required',$_POST)){
die('MISSING REQUIRED');
}else{
echo $_POST['required'];
}