PHP三元运算符
admin
2023-06-21 08:02:12
0

三元运算符的功能与“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']  时,赋值为 'wangjinbo'  否则赋值为 'wjb';因为一:判断相等应该用==;因原二:三元算符的语法是如上所示:(expr1) ? (expr2) : (expr3),显然上面的二元,三元'wangjinbo'或'wjb'不能单独构成一个有意义的表达式;

正确理解是:当$_GET['abc']为空(也就是否,PHP中 '',null,0,undifine,都等效布尔值false)时,将$str赋值为'wangjinbo',否则赋值为'wjb';


相关内容

热门资讯

双汇致歉 【大河财立方消息】 5月28日,双汇发布致歉声明称,近日,黑龙江省市场监督管理局公示望奎双汇北大荒食...
为了更多生命的春天——河南和塞... 如果说,豫塞两地的临床防治需求是跨国医学合作的前提,那么共建“一带一路”倡议为双方深化医疗科技合作提...
公共服务随人走 在常住地也可享... 随迁子女仅凭居住证入学、高血压等10种慢特病费用跨省直接结算……公共服务随人走 在常住地也可享这些保...
合力奋战二季度丨不沿边不靠海,... 5月26日,记者走进位于鹤壁市鹤山区的鹤壁内陆港(豫煤交易中心鹤壁园区),双层叠放的集装箱阵列格外醒...
法院判了:全体业主赔偿陈女士1... 近日,湖北宜昌长阳土家族自治县人民法院审结一起因高空抛物引起的纠纷。一个从楼上掉下来的矿泉水瓶,砸坏...
爱尔眼科递表港交所!年收入超2... 【大河财立方消息】 5月27日,爱尔眼科医院集团股份有限公司向港交所提交上市申请。据招股书,爱尔眼科...
南部战区新闻发言人就荷兰军舰侵... 南部战区新闻发言人翟士臣就荷兰军舰侵权行为发表谈话。南部战区新闻发言人翟士臣海军大校表示,5月27日...
伊朗称对美国空军基地实施了打击 伊朗塔斯尼姆通讯社5月28日报道,伊朗革命卫队称,为回应阿巴斯港机场附近的袭击事件,已对美国空军基地...
子公司猪肉抗生素超标37.5倍... 5月28日,河南双汇投资发展股份有限公司发布致歉声明:近日,黑龙江省市场监督管理局公示望奎双汇北大荒...
杭州别墅藏代孕窝点,官方通报 今天,浙江省杭州市临平区联合调查处置组发布情况通报。针对群众反映临平区某小区一住宅内有人非法从事试管...