开发者学堂课程【PHP 基础入门课程(上) :三目运算】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/709/detail/12606
三目运算
内容介绍:
一、了解三目运算的逻辑
二、掌握三目运算符的应用
一、了解三目运算的逻辑
1、概念
三目运算:即有三个表达式参与运算的运算,是一种简单的判定以及给出结果的运算
- 三目运算:需要三个表达式参与运算
- 三目运算:表达式1﹖表达式2∶表达式3
a. 如果表达式1为真:返回表达式2的结果
b. 如果表达式1为假:返回表达式3的结果
- 三目运算简化:表达式1 ?:表达式3
a. 如果表达式1为真:返回表达式1的结果(等价于:表达式1?表达式1∶表达式3)
b. 如果表达式1为假:返回表达式3的结果
二、掌握三目运算符的应用
1、案例
比如说我们现在有一个年龄等于15岁的一个小家伙,我们就去判定,这个年龄是外面来的,我不确定,要拿身份证看,如果他的年龄大于等于18,那我们就看看,他能上网,否则我们就不能上网,再拿这个结果就可以了。
#年龄大于等于18岁,可以上网,否则不能上网
$age = 15;
$res = $age >= 18 ? '上网':'不能上网';
echo $res
; #上网:因为 $age >= 18结果为真
#用户提交数据:如果有就用,没有就给初始值
$res = $_GET[ ' age'] ?: 18;
#等价于合并运算: $res = $_GET[ 'age '] ?? 18
三目运算是可以多个嵌入到一起的(不建议),如果有这种情况要特别注意,最好使用()将子三目运算包起来
#年龄小于18岁,未成年,大于18岁,小于30岁,青年,大于30,小于65,中年,大于65,老年
$age = 19;
#错误示例:自己看不懂,程序也看不懂
$res = $age >= 18 ? $age > 30 ? $age > 65 ? '老年’︰'中年’︰'青年’∶'未成年';
#调整,每个子三目运算都进行包裹
$res = $age >= 18 ? ($age > 30 ? ($age > 65 ? '老年’:'中年')︰'青年')∶'未成年';
示例:
1 <?Php
2
3#三目运算
4
5 $age = 19;
6
7 $res = $age > 18 ?‘成年':'未成年';\\结果成年
8
9/ / echo $res;
10
11
12 $_POST[ 'age']=0;
13 #浏览器提供数据
14 $res = $_POST[ 'age']?:2.8;
15 echo $res;
小结
1、三目运算标准需要三个表达式参与运算:表达式1?表达式2∶表达式3
·表达式1成立:得到表达式2的结果
·表达式1不成立:得到表达式3的结果
2、简化的三目运算与合并运算一样(合并运算在 PHP7 以后有的,就是为了简化三目运算)
·表达式1﹖∶表达式3====表达式1??表达式3(不完全等价:三目运算是判定表达式1的结果是否为真,而合并运算是判定表达式1是否存在)
3、三目运算理论上可以无限嵌套,但是要注意对子三目运算的包裹(不建议使用)