PHP中empty,isset,is_null用法和区别
PHP中empty,isset,is_null用法和区别
最近在阅读项目的源码,发现源码中就对empty、isset和is_null函数(语言特性)乱用,有的地方很明显的就挖坑了。不能正确的去理解这些东西,就很可能给后续的开发挖坑了。
empty用法 bool empty ( mixed var) 如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,””、0、”0”、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE
isset() isset – 检测变量是否设置 描述 bool isset ( mixed var [, mixed var [, …]]) 如果 var 存在则返回 TRUE,否则返回 FALSE。 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节(”0”)并不等同于 PHP 的 NULL 常数。 注意:如果变量不存在,isset()和empty()都不会报错;is_null(),is_numeric()会报错 如何区别如下数组中 [0,’’,null] 三个元素 1.区别0:
1
2$a = 0;
isset($a) && is_numeric($a) === true2.区别’’
1
2$a = '';
empty($a) && $a=== ''3.区别null
1
2$a = null;
is_null($a);另外在做表单提交的时候可能经常要检测一个变量是否存在,假如
$_REQUEST['status'] = 0;
使用empty($_REQUEST['status'])
返回true,但是使用isset($_REQUEST['status'])
判断就不是空is_null():
bool is_null ( mixed $var )
(php.net官方文档的函数定义) 当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE 1、它被赋值为NULL 2、它还没有赋值 3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗 让我们来看一些例子:
1 | $myvar = NULL; |
- Title: PHP中empty,isset,is_null用法和区别
- Author: algorain
- Created at: 2017-04-19 16:23:13
- Updated at: 2023-05-14 21:39:50
- Link: http://www.rain1024.com/2017/04/19/php-article70/
- License: This work is licensed under CC BY-NC-SA 4.0.