PHP -检查数组索引是否存在或为空


PHP - Checking if array index exist or is null

是否有方法检查数组索引是否存在或为空?isset()不会告诉你索引是不存在还是存在但为空。如果我执行:isset($array[$index]) || is_null($array[$index]),它将无法工作,因为如果索引不存在,is_null将崩溃。

请问我怎么查?还有,是否有一种方法来检查是否存在的东西,不管它是否被设置为空或不?

函数array_key_exists()可以做到这一点,property_exists()用于对象,加上Vineet1982所说的。谢谢你的帮助。

这是一个非常好的问题,您可以使用get_defined_vars():

$foo = NULL;
$a = get_defined_vars();
if (array_key_exists('def', $a)) {
   // Should evaluate to FALSE
 }; 
if (array_key_exists('foo', $a)) {
   // Should evaluate to TRUE
};

这将解决你的问题

最简单定义为: http://php.net/manual/en/function.array-key-exists.php

<?php
$array=array('raja'=>'value', 'john'=>'value2');
$var='raja';
echo array_key_exists($var, $array);
?>

<?php
$array=array('raja'=>'value', 'john'=>'value2');
echo isset($array['raja']) ? "exists" : "does not exist";
?>
//Output: exists