PHP中empty,isset,is_null用法和区别

 更新时间:2017年02月19日 17:09:13   投稿:hebedich  
最近在阅读项目的源码,发现源码中就对empty、isset和is_null函数(语言特性)乱用,有的地方很明显的就挖坑了。不能正确的去理解这些东西,就很可能给后续的开发挖坑了。

1.empty用法

bool empty ( mixed var)
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

2.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:

$a = 0;
isset($a) && is_numeric($a) === true

(2)区别''

$a = '';
empty($a) && $a=== ''

(3)区别null

$a = null;
is_null($a);  

另外在做表单提交的时候可能经常要检测一个变量是否存在,假如$_REQUEST['status'] = 0;使用empty($_REQUEST['status'])返回true,但是使用isset($_REQUEST['status']) 判断就不是空

3. is_null():

bool is_null ( mixed $var )   (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:

$myvar = NULL;  
var_dump(is_null($myvar)); // TRUE 
$myvar1;      
var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable 
$num = 520; 
unset($num); 
var_dump(is_null($num)); //TRUE Notice: Undefined variable 
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable 
 
$myvar = 0; is_null($myvar);   // FALSE 
$myvar = FALSE; is_null($myvar); // FALSE 
$myvar = ''; is_null($myvar);  // FALSE 

相关文章

  • thinkphp 多表 事务详解

    thinkphp 多表 事务详解

    本篇文章是对thinkphp 多表、事务进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php实现用于计算执行时间的类实例

    php实现用于计算执行时间的类实例

    这篇文章主要介绍了php实现用于计算执行时间的类,实例分析了php计算运行实现的类实例与相关使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • PHP文件操作实例总结

    PHP文件操作实例总结

    这篇文章主要介绍了PHP文件操作,结合实例形式总结分析了php关于文件读写操作的常见函数及使用技巧,需要的朋友可以参考下
    2016-09-09
  • apache php模块整合操作指南

    apache php模块整合操作指南

    本文将详细介绍Linux下Apache、php3、MySQL的整合的相关问题的解决方法,需要的朋友可以参考下
    2012-11-11
  • 详解配置 Apache 服务器支持 PHP 文件的解析

    详解配置 Apache 服务器支持 PHP 文件的解析

    这篇文章主要介绍了详解配置 Apache 服务器支持 PHP 文件的解析的相关资料,需要的朋友可以参考下
    2017-02-02
  • php实现微信企业号支付个人的方法详解

    php实现微信企业号支付个人的方法详解

    这篇文章主要介绍了php实现微信企业号支付个人的方法,详细分析了php微信企业号的支付配置、证书使用及支付流程相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • php操作redis数据库常见方法实例总结

    php操作redis数据库常见方法实例总结

    这篇文章主要介绍了php操作redis数据库常见方法,结合实例形式总结分析了PHP操作redis数据库的基本安装、连接、字符串、哈希表、列表、集合等相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • PHP脚本监控Nginx 502错误并自动重启php-fpm

    PHP脚本监控Nginx 502错误并自动重启php-fpm

    这篇文章主要介绍了PHP脚本监控Nginx 502错误并自动重启php-fpm,本文直接给出实现代码,然后放到cron中执行,需要的朋友可以参考下
    2015-05-05
  • 浅谈PHP中JSON数据操作

    浅谈PHP中JSON数据操作

    本文的知识点:1、JSON数据格式介绍,2、对数据编码成JSON格式,3、对JSON数据进行解码,并操作,有需要的小伙伴可以参考下。
    2015-07-07
  • php图片添加文字水印实现代码

    php图片添加文字水印实现代码

    这篇文章主要为大家详细介绍了php图片添加文字水印实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03

最新评论