Home  >  Article  >  php教程  >  PHP isset 和 array_key_exists 区别

PHP isset 和 array_key_exists 区别

WBOY
WBOYOriginal
2016-06-13 10:15:411078browse

在判断某个 PHP 数组的索引值是否存在,一般会使用 isset 和 array_key_exists 两种方法,但是两者返回的值会有不同,下面我来介绍isset 和 array_key_exists 区别,有需要的朋友可参考。

先来看个简单的例子

 代码如下 复制代码

isset($a['key'])
array_key_exists('key', $a)array_key_exists

确切地告诉你,数组是否存在某个键,而 isset 则只是返回键值是否为 null 的状态。

isset函数是检测变量是否设置。

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:

1.若变量不存在则返回 FALSE
2.若变量存在且其值为NULL,也返回 FALSE
3.若变量存在且值不为NULL,则返回 TURE
4.同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE


例1

 代码如下 复制代码

$a = array('key1' => '123', 'key2' => null);

使用这两个方法判断键值存在情况,结果如下:

 代码如下 复制代码

isset($a['key1']);             // true
array_key_exists('key1', $a);  // true

isset($a['key2']);             // false
array_key_exists('key2', $a);  // true

例2

 代码如下 复制代码

$a = array ('test' => 1, 'hello' => NULL);

var_dump( isset ($a['test') ); // TRUE
var_dump( isset ($a['foo') ); // FALSE
var_dump( isset ($a['hello') ); // FALSE

// 'hello' 等于 NULL,所以被认为是未赋值的。
// 如果想检测 NULL 键值,可以试试下边的方法。
var_dump( array_key_exists('hello', $a) ); // TRUE

?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn