zoukankan      html  css  js  c++  java
  • php的三元运算符

    三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行。若判断成立,则执行第二个表达式,否则执行第三个表达式。查资料时候,看到好多网友都说的不太全面或者不清不楚,所以这里整理并简单记录一波

    整理如下

    1. (expr1)?(expr2):(expr3);
    => 表达式1 ? 表达式2 : 表达式3
    => 如果条件“expr1”成立,则返回“expr2”,否则返回“expr3”。

    $number = 100;
    $msg = $number > 0 ? '大于0' : '不大于0';
    echo $msg;//大于0
    

    2. (expr1)?:(expr2);
    => 这个是php5.3开始才有的功能
    => 如果条件“expr1”成立,则返回“expr1”,否则“expr2”。

    <?php
    $number = 100;
    $msg = $number ?: '不大于0';
    echo $msg;//100
    

    3. (expr1)??(expr2);
    => 这个是php7开始才有的功能
    => 又叫空合并运算符,相当于 isset(expr1) ? expr1 : expr2;
    => 如果条件“isset(expr1)”成立,则执行语句“expr1”,否则执行“expr2”。
    => 链式:(expr1)?? (expr2) ?? (expr3);

    特别注意第3点

    它只能判断是否为null,而0/false/空数组都认为有值的!

    <?php
    // 一般形式
    $msg1 = $number ?? '未设置该变量';
    echo $msg1;//'未设置该变量'
    
    $number = 100;
    $msg2 = $number ?? '未设置该变量';
    echo $msg2;//100
    
    // 链式
    $msg3 = $number1 ?? $number2 ?? '未设置该变量';
    echo $msg3;//未设置该变量 //没有赋值都是null,所以返回'未设置该变量'
    
    $number1 = 100;//即使是0/false/空数组都认为有值的!
    $msg3 = $number1 ?? $number2 ?? '未设置该变量';
    echo $msg3;//100 //执行到第一步就得到结果,所以返回100
    
  • 相关阅读:
    POJ ACM题分类
    HDU 4438 Hunters (概率 & 期望)
    HDU 1042 N!
    HDU 1073 Online Judge
    PKU 1006 Biorhythms (中国剩余定理 * *)
    HDU 1047 Integer Inquiry
    HDU 2710 Max Factorv (素数模板 & 多种解法)
    HDU A + B Problem II 1002
    第6期(江西省吉安市永丰县)县长手机信箱工作简报(自吹自擂政绩,自圆其说)
    Send mail from ASP.NET using your gmail account
  • 原文地址:https://www.cnblogs.com/xuduan/p/13925267.html
Copyright © 2011-2022 走看看