zoukankan      html  css  js  c++  java
  • php三元运算符?:和??

    1.(expr1) ? (expr2) : (expr3)

    在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

    $a = (expr1) ? (expr2) : (expr3);
    
    //等价于下面的代码
    if (expr1) {
      $a = expr2;
    } else {
      $a = expr3;
    }
    

    注意,当expr1是一个变量时,以下情况为FALSE

    false //布尔值false
    0 //整数0
    0.0 //浮点型0.0
    "" //空字符串
    "0" //字符串0
    [] //空数组
    NULL //特殊类型NULL,包括尚未赋值的变量
    

    2.(expr1) ?: (expr3)

    自PHP5.3起,支持expr1 ?: expr3,在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

    $a = expr1 ?: expr3;
    
    //等价于下面代码
    if (expr1) {
      $a = expr1;
    } else {
      $a = expr3;
    }
    

    3.(expr1) ?? (expr2)

    PHP7引入 "??"(NULL合并),等价于isset(expr1) ? expr1 : epr2。

    $a = (expr1) ?? (expr2);
    
    //等价于下面代码
    if (isset(expr1)) {
      $a = expr1;
    } else {
      $a = expr2;
    }
    

    参考

  • 相关阅读:
    nginx安装:linux环境下安装包安装
    Effective C++
    Win32 Msg
    C++ 17
    Win32 Threads
    Exceptional C++
    C++11
    STL 分类
    C++类型转换
    红黑树
  • 原文地址:https://www.cnblogs.com/whyly/p/13254995.html
Copyright © 2011-2022 走看看