PHP中的isset()和array_key_exists()函数的区别

isset()函数是PHP中的内置函数,它检查变量是否已设置且不为NULL。此函数还检查声明的变量,数组或数组键是否具有空值,如果是,isset()返回false,它在所有其他可能的情况下返回true。

语法:

bool isset( $var, mixed )

参数:此函数接受多个参数。这个函数的第一个参数是$ var。此参数用于存储变量的值。

程序:

  1. <?php
  2. // 声明一个数组
  3. $array = array();
  4. // 使用isset功函数
  5. echo isset($array['geeks']) ? 'array is set.' :
  6. '数组未设置';
  7. ?>

输出:

数组未设置

array_key_exists()函数

array_key_exists()函数也是PHP中的预定义函数,它检查数组中是否存在索引或特定键。它不会为任何空值评估键的值。如果它没有在数组中找到键,则返回false,在所有其他可能情况下返回true。

语法:

bool array_key_exists( $key, $array )

参数:此函数接受上述两个参数,如下所述:

$key:此参数用于存储要检查的值。

$array:此参数用于存储带有要检查的键的数组。

程序:

  1. <?php
  2. // 创建一个数组
  3. $array = array(
  4. 'name' => null,
  5. );
  6. // 使用array_key_exists函数
  7. echo array_key_exists('name', $array)
  8. ? 'array key exists' : 'array key does not exist';
  9. ?>

输出:

array key exists

isset()和array_key_exists()函数之间的主要区别在于array_key_exists()函数肯定会告诉数组中是否存在键,而isset()只返回true,如果键/变量存在且不为空。当array_key_exists不存在时,isset()也不会在数组/变量存在时呈现错误。