简单记录一哈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);

特别注意

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

<?php
// 一般形式
$msg1 = $number ?? '未设置该变量';
echo $msg1;//'未设置该变量' $number = 100;
$msg2 = $number ?? '未设置该变量';
echo $msg2;//100 // 链式
$msg3 = $number1 ?? $number2 ?? '未设置该变量';
echo $msg3;//未设置该变量,直接到最后 $number1 = 100;//即使是0/false/空数组都认为有值的!
$msg3 = $number1 ?? $number2 ?? '未设置该变量';
echo $msg3;//100,执行到第一步就得到结果,所以返回100

php的三元运算符的更多相关文章

  1. PHP三元运算符 isset($_GET['id']) ? $_GET['id'] : ”

    $id = isset($_GET['id']) ? $_GET['id'] : ''; ?> 这是一个php的三元运算符 (条件) ? (值1):(值2); 解释:如果条件成立(为真),则执行 ...

  2. PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符

    1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 ...

  3. java的三元运算符

    1.三元运算符语法:判断表达式?表达式1:表达式2: (1)三元运算符适合于判断2个值到底使用哪一个! public static void mian(String[] args){ int sex= ...

  4. 使用Eval()绑定数据时使用三元运算符

    ASP.NET邦定数据“<%#Eval("Sex")%>”运用三元运算符: <%#(Eval("Sex", "{0}") ...

  5. PHP 三元运算符省略写法

    三元运算符 “?:” 又名条件运算符 表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值 ...

  6. Java 关键字、标识符、注释、常量与变量、数据类型,算术、赋值、比较、逻辑、位、三元运算符和流程控制、break、continue【3】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  7. C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)

    前言 这两天在网上看到的总结很多,尤其是博客园中的,很多很多,也给了我很多的启发,当然自己也总结过,而且有很多人也给与我一些意见和看法.不管怎样,自己还是先把所谓的基础知识加强巩固下吧. 2014年的 ...

  8. JAVA元运算符,一元运算符,二元运算符,三元运算符

    一元运算符: 序号 一元运算符 说明 1 i++ 给i加1 2 i-- 给i减1 3 ++i 给i加1 4 --i 给i减1 i++;/*例:int i=1;i++;//先将i的值1赋值给i,然后i再 ...

  9. JAVA非空条件三元运算符

    //非空情况处理: // Integer holidayPrice = order.get("holidayPrice")!=null?Integer.valueOf(String ...

  10. python三元运算符

    在c.php里面,都有三元运算符,如:   a = b?c:d 意思是 b 的运算结果如果是True,那么整个表达式a就等于c,反之如果b的运算结果是False,那么a就等于d. 这样写起来简洁又高效 ...

随机推荐

  1. spring-boot-route(二)读取配置文件的几种方式

    Spring Boot提供了两种格式的配置文件,分别是properties 和 yml.Spring Boot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置文件来指定自己服 ...

  2. MySQL计算月份间隔的函数

    要求忽视具体日期,即 2020-01-31 与 2020-02-01 的月份间隔为:1 -- 格式必须为: '%Y%m' SELECT PERIOD_DIFF("202008" , ...

  3. Centos7 Docker配置TLS认证的远程端口的证书生成教程(shell脚本一键生成)

    通过 TLS来进行远程访问 百度百科 - TLS.我们需要在远程 docker 服务器(运行 docker 守护进程的服务器)生成 CA 证书,服务器证书,服务器密钥,然后自签名,再颁发给需要连接远程 ...

  4. Git操作常用的命令都在这里了。

    创建仓库 git init 在当前目录执行,会生成 .git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first commit" -m:表示提交描述, ...

  5. 5分钟快速掌握Jenkins,项目一键自动部署

    5分钟快速掌握Jenkins,项目一键自动部署 目录 前言 Jenkins是什么? Jenkins环境安装搭建 Jenkins基本使用介绍 Jenkins快速构建项目,项目自动化部署 学习总结 前言 ...

  6. 多测师讲解ui自动化框架设计思想_高级讲师肖sir

    UI自动化框架:UI自动化框架可以分为8个模块,conf.data.public.pageobject.testcase.runner.report.log.conf是用来储存系统环境.数据库.邮件的 ...

  7. 多测师讲解第一个月 _综合面试题_高级讲师肖sir

    第一个月综合面试题 1.  冒烟测试是什么意思?  对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别?  4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...

  8. java中文件是否为空

    在File类中并没有提供判断文件是否为空的方法,但可以借助length()方法的返回值进行判断.如果文件不存在或文件为空时,length()方法返回0. File file = new File(&q ...

  9. BST,Splay平衡树学习笔记

    BST,Splay平衡树学习笔记 1.二叉查找树BST BST是一种二叉树形结构,其特点就在于:每一个非叶子结点的值都大于他的左子树中的任意一个值,并都小于他的右子树中的任意一个值. 2.BST的用处 ...

  10. linux时间校准 设置时间为上海时区

      [root@localhost log]# rm -f /etc/localtime [root@localhost log]# cp /usr/share/zoneinfo/Asia/Shang ...