美文网首页
php true false isset empty is_nu

php true false isset empty is_nu

作者: 宋大肿 | 来源:发表于2017-11-26 21:21 被阅读13次

    php里面的true和false,以及isset、empty、is_null比较容易让人模糊,写一下,记录我的理解。

    switch(true){
    case 1: 
    echo '我是1';
    case ['']: 
    echo '我是数组';
    case true:
    echo '我是true';
    case 'true': 
    echo :'string true';
    default: 
    echo ' over' ;
    }  
    

    代码执行结果会是 全都被输出。

    php变量和bool类型的数据做比较的时候,将会被转换成true 或者false

    那么0、false、null或者unset之后的变量将会被系统认为是false。
    除此之外都将会被认为是true。
    注意 以上代码中:[''],其实是创建一个匿名数组,和bool进行比较的时候,将会被系统认为是true。

    false在网页中是不被打印的。

    isset()

    判断变量是否已经被定义以及判断该变量是否被设置(也就是赋值)。
    当变量不存在或者是当变量被赋值为null,或者压根没有被赋值的情况下,返回false。
    其余情况返回true,当然外部无法访问类内部private修饰的变量。
    ''、0、false、array()也被认为是已经设置。

    empty()
    判断变量是否为空。
    0、false、null、array()、unset()、''、没有初始化这些情况下,empty函数都将返回true也就是1。
    其余情况返回false。

    也就是 只要该变量等于false,empty就将返回true。

    is_null()

    判断变量是否是空。
    只有在变量未初始化就使用以及初始化为null以及变量根本不存在的情况下,才会返回true。

    总结

    php遵循c语言的变量存储规则。
    如果我们认为php是一个只有true和false的世界:

    1. 0->false
    2. false->false
    3. ''->false
    4. array()->false
    5. null->false
    6. unset()->false
    7. 变量未初始化就调用->false
    8. 1->true
    9. 其余情况->true

    empty认为一切是false的玩意,都是空,都会给调用者返回true。
    is_null认为未初始化的变量,不存在的变量,值为null的变量 都是true。
    isset认为当变量不存在或者是当变量被赋值为null,或者压根没有被赋值,以及被unset之后的变量,属于未被设置的范畴,将返回0,false。

    相关文章

      网友评论

          本文标题:php true false isset empty is_nu

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