考虑以下示例:
if ( isset($_POST['type']) && 'page' == $_POST['type'] )
return;
我们需要isset($_POST['type'])
检查吗?
从目前为止我看到的结果似乎如下:
if ( 'page' == $_POST['type'] )
return;
或者这会在某些情况下引起问题吗?
答案 0 :(得分:0)
使用“isset
”是正确的方法,否则会抛出警告:“索引类型未定义”。它还会检查数组是否为空。
isset()
函数将用于替换两个函数
if(!empty(your_array) && array_key_exists('type',$POST['type']))
因此,请使用此检查以避免进一步的并发症
答案 1 :(得分:0)
这可能会导致错误通知:PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"
等问题您可以使用array_key_exists
代替isset
。 array_key_exists
方法肯定会告诉您数组中是否存在键,而如果键/变量存在且不为null,则isset将仅返回true
还有另一个重要区别。isset
在$ x不存在时不会抱怨,而array_key_exists
则会抱怨。
$x = [
'key1' => 'abcd',
'key2' => null
];
isset($x['key1']); // true
array_key_exists('key1', $x); // true
isset($x['key2']); // false
array_key_exists('key2', $x); // true