首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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 :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200709A0UOUD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券