• 技术文章 >后端开发 >php教程

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

    墨辰丷墨辰丷2018-05-25 11:07:52原创788
    最近在阅读项目的源码,发现源码中就对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


    以上就是本文的全部内容,希望对大家的学习有所帮助。


    相关推荐:

    PHP isset()与empty()的使用区别

    php中isset和empty的区别详解

    php性能优化:isset()比strlen()更快

    以上就是PHP中empty,isset,is_null用法和区别详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:isset empty null
    上一篇:PHP重定向与伪静态的区别详解 下一篇:php 文件锁 简析
    Web大前端开发直播班

    相关文章推荐

    • Follow your heart (113)-总算决定,边等人家做,边自学php了 • PHP时间戳函数小结一览 • php5戏法函数、魔术常量 • 帮小弟我完成上html的简单布局 • 打搅,问个简单的有关问题

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网