β

PHP中检测数组中某键是否存在的方法

大超超在思考 156 阅读

(截图中查询语句的写法是不规范的,至少有一条规范是关键词大写)

自建 PHP 框架里,有对本地配置 $conf 和数据库配置综合使用的情况,提供统一函数接口获取配置,顺序是:

先检查本地配置中全局配置变量 $conf 的某键是否存在,如果存在,就直接返回配置值;

如果本地变量里没有,就去数据库配置获取最新配置,并写入本地配置全局变量(内存中,供本次运行时后续调用),这样就能避免数据库重复查询。

然而在实际应用中发现:

当本地配置和数据库配置的值都不存在时,数据库值返回 NULL ,调试发现也写入到全局变量 $conf 里了,值为 NULL ,但是真实查询语句会重复查多次。

检查获取配置的接口,并查阅文档发现:

以前认为的使用 isset($conf['key']) 可以作为“检测数组中某键是否存在的方法”是错误的,这也是个编码安全隐患。

正确的方法是:

使用 PHP 内置函数 array_key_exists

官方文档说到:

isset 检查的变量值为 NULL 时,返回 FALSE


文章同步在微信订阅号,欢迎关注:

声明: 本文采用 BY-NC-SA 协议进行授权 | 大超超在思考
转载请注明转自《 PHP中检测数组中某键是否存在的方法

作者:大超超在思考
欢迎来到大大超的小小家,他正在思考,不要打扰他哦! - 共享、创意、思想
原文地址:PHP中检测数组中某键是否存在的方法, 感谢原作者分享。

发表评论