zoukankan      html  css  js  c++  java
  • PHP7 引入的“??” 和“?:”的区别

    测试代码

    输入测试:

    <?php
        $array = [
            'a' => 1,
            'b' => 2,
            'c' => [],
        ];
    
        $a = $array['c'] ?? 0;
        $b = $array['c'] ?: 0;
        $c = $array['d'] ?? 0;
        $d = $array['d'] ?: 0;
        $e = $array['c'] ? 1 : 0;
        $f = isset($array['c']) ? 1 : 0;
        $g = $array['d'] ? 1 : 0;
        $h = isset($array['d']['e']) ? 1 : 0;
        $i = !empty($array['c']) ? 1 : 0;
        $j = !empty($array['d']) ? 1 : 0;
    
        var_dump($a);
        var_dump($b);
        var_dump($c);
        var_dump($d);
        var_dump($e);
        var_dump($f);
        var_dump($g);
        var_dump($h);
        var_dump($i);
        var_dump($j);
                          

    输出结果:

    PHP Notice:  Undefined index: d in /home/fanyu/abc.php on line 11
    PHP Notice:  Undefined index: d in /home/fanyu/abc.php on line 14
    array(0) {
    }
    int(0)
    int(0)
    int(0)
    int(0)
    int(1)
    int(0)
    int(0)
    int(0)
    int(0)

    结论
    1. $a ?? 0 等同于 isset($a) ? $a : 0。

    2. $a ?: 0 等同于 $a ? $a : 0。

    3. empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true)。

    4. isset: 判断一个变量是否设置(值为false、00、0、’0′、』这类,也会返回true)。

    转: https://blog.csdn.net/weixin_43154922/article/details/82692831

  • 相关阅读:
    Java基础知识整理
    HashMap源码解读(JDK1.7)
    书籍列表
    mysql4
    mysql3
    mysql2
    mysql1
    数据结构4
    数据结构3
    数据结构2
  • 原文地址:https://www.cnblogs.com/fps2tao/p/15183475.html
Copyright © 2011-2022 走看看