PHP 数组 array_key_exists 与 isset 的区别

php 2023-05-02 432次浏览

isset

isset — 检测变量是否已声明并且其值不为 null

如果一个变量已经被使用 unset() 释放,它将不再被认为已设置。

若使用 isset() 测试一个被赋值为 null 的变量,将返回 false。 同时要注意的是 null 字符("\0")并不等同于 PHP 的 null 常量。

如果一次传入多个参数,那么 isset() 只有在全部参数都已被设置时返回 true。 计算过程从左至右,中途遇到未设置的变量时就会立即停止。

array_key_exists

array_key_exists — 检查数组里是否有指定的键名或索引

组里有键 key 时,array_key_exists() 返回 true。 key 可以是任何能作为数组索引的值。


以上摘自PHP手册
https://www.php.net/manual/zh/function.array-key-exists.php
https://www.php.net/manual/zh/function.isset

isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会。

<?php
$arr = array('name' => null, 'age' => 23);

// returns false
isset($arr['name']);

// returns true
array_key_exists('name', $arr);
?>

另外,手册评论里有人测试过,isset 的速度比 array_key_exists 要快一些。

PHP数组array_key_exists与isset的区别

喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. Your blog post had me hooked from the first sentence.
    Miller Cook2024-02-29 21:28 回复 未知操作系统 | 未知浏览器