我们先说一下语言结构 isset 和 empty
1. 定义
empty — 检查一个变量是否为空""、0、"0"、NULL、FALSE、array()、var $var;
以及没有任何属性的对象都将被认为是空的返回 TRUE
isset — 检测变量是否设置
检测变量是否设置,并且不是 NULL。
$a = 0;
empty($a) => true isset($a) => true
仅仅是变量存在与否用isset
如果是 isset($data['a']) && $data['a']
这一类的 可以使用 empty($data['a']) 代替
用isset了。
2. 性能
isset和empty的性能差别不大。它们都是语言结构,不是函数,比函数更高效同样是语言结构的还有如下:可以使用 function_exists 检测
die() echo() empty() exit() eval()
include() include_once() isset() list() require()
require_once() return() print() unset() array()
关于isset 和 in_array 这里有一个比较好的测试文章
3. 延伸
既然语言结构更加高效,我们实际中有哪些场景可以用语言结构代替函数
array_key_exists($key,$arr) => isset($arr[$key])