PHP三元运算符
来源:互联网 发布:上海本土淘宝女装品牌 编辑:程序博客网 时间:2024/04/30 13:13
三元运算符的功能与“if...else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。
在PHP程序中恰当地使用三元运算符能够令脚本更为简洁、高效。
代码格式如下:(expr1) ? (expr2) :(expr3);
解释:如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。
实现同样的功能,若使用条件流程语句,就需要书写多行代码:
if(expr1) {
expr2;
} else {
expr3;
}
可见,前面所说的三元运算符之好并非夸张。可是,多数情况下我们只在代码较为简单的时候使用三元运算符,即执行语句只为单句的时候。如:
$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:
$a>$b ? $x=($a<$c ? $c-$a :$a-$c) : $x=($b<$c ? $c-$b :$b-$c);
嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题,但比起“if...else”之类的流程语句,在上述情形之下,它的确太简练了,这是它的诱人之处。
对于喜欢偷懒和追求代码简洁的人来说,用三元运算符取代if流程语句应该是绝佳的选择。即使不用考虑“三元”中条件句以外的任意某一“元”,使用三元运算符仍然比if语句简练。以下语句的语法是正确的,它们以小解引号的方式忽略了第二或第三“元”:
$a>$b ? print "Yes" : "";
$a>$b ? '': print 'No';
应该注意的是:在使用三元运算符时,建议使用print语句替代echo语句。
注意下列一串语句的理解:
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
这里不能理解为:当$str等于$_GET['abc']
正确理解是:当$_GET['abc']为空(也就是否,PHP中'',null,0,undifine,都等效布尔值false)时,将$str赋值为'wangjinbo',否则赋值为'wjb';
- PHP三元运算符
- PHP三元运算符 ?
- php三元运算符 ? :
- PHP 三元运算符
- php 三元运算符
- php三元运算符
- PHP三元运算符
- PHP三元运算符?托
- PHP三元运算符?筛
- PHP三元运算符?缺
- PHP三元运算符?蒙
- PHP三元运算符的运算顺序
- php的三元运算符嵌套
- 关于php三元运算符的问题
- 011.php连接运算符、三元表达式
- php三元运算符?:的简写形式
- php中三元运算符用法
- PHP三元运算符的简写形式
- Copy Rounting (BAPI:BAPI_ROUTING_CREATE)
- Zipalign--apk对齐优化
- mfc 一开始隐藏窗体的方法以及原理解析
- 介绍机器学习基本概念(七张图)
- 自动登录(不用*DM)并启动X
- PHP三元运算符
- REST模式--RESTful web服务
- 流式数据概念
- 面向对象vs面向数据
- 关于DICOM图片集成数据更新
- 修改FCKEditor实现将图片、文件等保存到数据库
- Android 注
- js的原型链和对象理解
- JTable的操作