PHP|3分钟短文 | PHP 判断数组key是否存在,你用isset?赶紧改!

PHP|3分钟短文 | PHP 判断数组key是否存在,你用isset?赶紧改!

引言
接着我们的 PHP 数组操作系列文章继续写 。 今天说一说如何判断数组的key是否存在?
一般大家可能立马想到了那个函数——isset 。 但是这个是检测变量是否设置的 , 如果用来检查数组 , 可能又会一些副作用 。



学习时间
其实判断数组的键是否存在 , 有一个一直以来的函数 array_key_exists, 检查给定的键名或索引是否存在于数组中 。
比如有下面这个例子:
$key = 'jim';

// example 1
if (isset($array[$key
)) {
   // ...


// example 2    
if (array_key_exists($key $array)) {
   // ...


example 1 与 2 有什么区别吗?到底哪一个性能更好一些?
简单地说 , isset 判断键是否存在 , 同时也判断键存在时值是否为空 。 性能当然是快的 。 而 array_key_exists 专门用于判断数组键是否存在 , 纵使传入的值是 NULL , 也可以正确执行 。 功能更为专一 。
我们举一个例子:
$a = array('key1' => 'フーバー' 'key2' => null);

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

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

对于键 key2 , 是存在的 , 而值是null , 所以isset 返回了 false , 而 array_key_exists 返回了true , 后者才是我们想要的结果 。
写在最后
看到上面的代码之后 , 赶紧自查一下你再程序里 , 还有哪些地方用了 isset 用于判断键是否存在的 。 如果不想程序跑偏 , 还是建议更改过来哦 。
Happy coding :_)
【PHP|3分钟短文 | PHP 判断数组key是否存在,你用isset?赶紧改!】我是@程序员小助手 , 持续分享编程知识 , 欢迎关注 。


    推荐阅读