美文网首页
PHP学习之empty,is_null,isset的区别

PHP学习之empty,is_null,isset的区别

作者: 哈啰于先生 | 来源:发表于2017-03-01 19:16 被阅读0次

    在实际开发过程中,我们经常会进行变量为空判断,比如我们接收ajax传递过来的参数,在处理之前要进行判断,以免访问空的地址造成错误。
    经常使用的方法有,empty($var), is_null($var),isset($var)
    如何区分这三个方法,
    1、empty()的定义为:若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true。言外之意就是int 0,string '0'(用c语言的数据类型对比),都会被判做空,也就是返回true,这是从java或者c转php后会遇到的一个坑。
    2、is_null(),检测变量是否为NULL。我们知道php中数据分为这样几种类型:字符串、整型、浮点型、布尔型、数组、对象,NULL,即string、int、float、bool、array,object,NULL。其中NULL表示数据无值,nullNULL数据类型唯一可能的值,当声明一个变量的时候,如果不赋值,则表示为null,如$var;$var = null;是一样的,在这种情况下 is_null($var) = true
    3、isset(),用于检测变量是否存在(赋值?声明?),一般情况下用法跟is_null()相反,有点互斥的意思,虽然他俩区别还挺大,简单来说isset()是语句(可用理解为if...else或者foreach之流),而is_null()是函数(就是你认识的函数)。语句在编译器编译过程中,就会直接生成结果,而函数只有运行后才会知道结果。

    下面把这三个方法的一些常用并且易混的情况列举如下:

    变量          empty() is_null()   isset()
    $a=""         true      false       true
    $a=null     true        true         false
    var $a       true       true         false
    $a=array()   true       false       true
    $a=false       true     false       true
    $a=15         false    false        true
    $a=1           false       false        true
    $a=0           true     false       true
    $a="0"       true       false       true
    $a=true     false      false        true
    $a=false       true     false       true
    

    对齐太费劲了!

    相关文章

      网友评论

          本文标题:PHP学习之empty,is_null,isset的区别

          本文链接:https://www.haomeiwen.com/subject/xtrcgttx.html