首页
Portal
业界资讯
社区
BBS
我的家园
Space
个人空间
导读
Guide
登录
/
注册
用户名
Email
自动登录
找回密码
密码
登录
注册
搜索
搜索
本版
帖子
用户
本版
帖子
用户
帖子
好友
道具
勋章
收藏
任务
淘帖
门户
导读
设置
我的收藏
退出
腾讯QQ
微信登录
首页
›
≡≡网络技术≡≡
›
PHP语言
›
PHP中由问号(?)和冒号(:)组成三目(元)运算符简介 ...
返回列表
PHP
PHP中由问号(?)和冒号(:)组成三目(元)运算符简介
[ 复制链接 ]
灰儿
2021-12-2 19:06:39
PHP中由问号(?)和冒号(:)组成三目(元)运算符简介
三元运算符语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。
下面我们来详细探讨下。
今天在改论文在线的时候遇到了一个语句看不懂:
$if_summary = $row['IF_SUMMARY']==2?'是':'否';
这句话的意思就等于是
if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}
三元运算符的功能与“if...else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。
相关文章推荐:
1.PHP三元运算符:快还是不快?
2.PHP中三元运算符和Null合并运算符的简单比较
3.php中常见的运算符有哪些
相关视频推荐:
1.独孤九贱(4)_PHP视频教程
在PHP程序中恰当地使用三元运算符能够令脚本更为简洁、高效。
代码格式如下:
(expr1) ? (expr2) : (expr3);
解释:
如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。
实现同样的功能,若使用条件流程语句,就需要书写多行代码:
if(expr1) {
expr2;
} else {
expr3;
}
可见,前面所说的三元运算符之好并非夸张。
可是,多数情况下我们只在代码较为简单的时候使用三元运算符,即执行语句只为单句的时候。如:
1
$a>$b ? print "a大于b" : print "a小于b";
事实上,三元运算符可以扩展使用,当设置的条件成立或不成立,执行语句都可以不止一句,试看以下格式:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
我们非常明显地看到,多个执行语句可以使用用字符串运算符号(“.”)连接起来,各执行语句用小角括号包围起来以表明它是一个独立而完整的执行语句。
这样扩展后它的功能更为逼近“if...else”流程语句。
同时三元运算符还可以嵌套使用。
例如,a大于b成立时:
如果a小于c,那么x=c-a否则x=a-c;
否则a小于b成立时:如果b小于c,那么x=c-b否则x=b-c:
1
$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);
嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题,但比起“if...else”之类的流程语句,在上述情形之下,它的确太简练了,这是它的诱人之处。
对于喜欢偷懒和追求代码简洁的人来说,用三元运算符取代if流程语句应该是绝佳的选择。即使不用考虑“三元”中条件句以外的任意某一“元”,使用三元运算符仍然比if语句简练。
以下语句的语法是正确的,它们以小解引号的方式忽略了第二或第三“元”:
1
2
$a>$b ? print "Yes" : "";
$a>$b ? '': print 'No';
应该注意的是:
在使用三元运算符时,建议使用print语句替代echo语句。
注意下列一串语句的理解:
1
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
这里不能理解为:当$str等于$_GET['abc'] 时,赋值为 'wangjinbo' 否则赋值为 'wjb';
因为一:判断相等应该用==;
因为二:三元算符的语法是如上所示:(expr1) ? (expr2) : (expr3),显然上面的二元,三元'wangjinbo'或'wjb'不能单独构成一个有意义的表达式;
正确理解是:
$_GET['abc']为空值(也就是否(false),PHP中 ' ',null,0,undifine,都等效布尔值false)这时$str赋值为'wjb',否则赋值为'wangjinbo';
注:
IF语句条件里面没有条件时,内容本身 $_GET['abc'] 为真,条件成立, str赋值为 'wangjinbo' ,否则赋值为 'wjb';没有明确值为true时,真(true)表示有值,假(false)表示没有值。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
回复
本版积分规则
回帖后跳转到最后一页
灰儿
管理员
9839篇
主题总数
7
总热度
提问
+关注
产品动态
2024-05-14
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
2024-05-13
关于webapp与WEB-INF的记录
2024-05-13
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
2024-05-13
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
2024-05-13
核心路由器十项性能指标
2024-05-11
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
2024-05-10
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
2024-05-04
Switch EdiZon SE 金手指插件使用 图文教程
热点推荐
1
神州数码云科(DCN) DCME-320路由器关闭外网22、23、53等端口方法
2
关于webapp与WEB-INF的记录
3
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
4
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
5
核心路由器十项性能指标
6
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
7
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
8
Switch EdiZon SE 金手指插件使用 图文教程
热门板块
PC操作系统
启动和引导
手机操作系统
硬件相关
办公软件
多媒体技术
产品动态
2024-05-14
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
2024-05-13
关于webapp与WEB-INF的记录
2024-05-13
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
2024-05-13
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
2024-05-13
核心路由器十项性能指标
2024-05-11
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
2024-05-10
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
2024-05-04
Switch EdiZon SE 金手指插件使用 图文教程
热点推荐
1
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
2
关于webapp与WEB-INF的记录
3
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
4
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
5
核心路由器十项性能指标
6
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
7
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
8
Switch EdiZon SE 金手指插件使用 图文教程
热门板块
PC操作系统
启动和引导
手机操作系统
硬件相关
办公软件
多媒体技术
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言
了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言
了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。