37

有没有办法检查数组索引是否存在或为 nullisset()不会告诉您索引是不存在还是存在但为空。如果我这样做:isset($array[$index]) || is_null($array[$index])它将不起作用,因为如果索引不存在 is_null 将崩溃。

请问这个怎么查?还有一种方法可以只检查某物是否存在,无论它是否设置为空?

4

3 回答 3

38

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

于 2013-03-09T12:04:27.990 回答
19

这是一个非常好的问题,您可以为此使用 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
};

这将解决您的问题

于 2013-03-09T12:02:45.067 回答
8

最简单的定义在: 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);
?>
于 2015-07-23T07:46:12.867 回答