PHP中的isset()和array_key_exists()函数的区别
isset()函数是PHP中的内置函数,它检查变量是否已设置且不为NULL。此函数还检查声明的变量,数组或数组键是否具有空值,如果是,isset()返回false,它在所有其他可能的情况下返回true。
语法:
bool isset( $var, mixed )
参数:此函数接受多个参数。这个函数的第一个参数是$ var。此参数用于存储变量的值。
程序:
- <?php
- // 声明一个数组
- $array = array();
- // 使用isset功函数
- echo isset($array['geeks']) ? 'array is set.' :
- '数组未设置';
- ?>
输出:
数组未设置
array_key_exists()函数
array_key_exists()函数也是PHP中的预定义函数,它检查数组中是否存在索引或特定键。它不会为任何空值评估键的值。如果它没有在数组中找到键,则返回false,在所有其他可能情况下返回true。
语法:
bool array_key_exists( $key, $array )
参数:此函数接受上述两个参数,如下所述:
$key:此参数用于存储要检查的值。
$array:此参数用于存储带有要检查的键的数组。
程序:
- <?php
- // 创建一个数组
- $array = array(
- 'name' => null,
- );
- // 使用array_key_exists函数
- echo array_key_exists('name', $array)
- ? 'array key exists' : 'array key does not exist';
- ?>
输出:
array key exists
isset()和array_key_exists()函数之间的主要区别在于array_key_exists()函数肯定会告诉数组中是否存在键,而isset()只返回true,如果键/变量存在且不为空。当array_key_exists不存在时,isset()也不会在数组/变量存在时呈现错误。