【三元运算符的层次与应用】

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 egmax 的 blog

三元运算符是大家都熟悉的了,在php手册中关于三元运算符的介绍有这段:

//===========
另外一个条件运算符是“?:”(或三元)运算符,它和 c 以及很多其它语言的操作一样。

php代码:

<?php
// example usage for: ternary operator
$action = (empty($_post['action'])) ? 'default' : $_post['action'];
// the above is identical to this if/else statement
if (empty($_post['action'])) {
    
$action = 'default';
} else {
    
$action = $_post['action'];
}
?>  


对于表达式 (expr1) ? (expr2) : (expr3),如果 expr1 的值为 true,则此表达式的值为 expr2,如果 expr1 的值为 false,则此表达式的值为 expr3。
//===========



很简短的例子,很强的功能,基本原理也就是简单的判断,如果对如何执行否则如何。
有人讨论三元运算符的效率问题,在没确凿证据前我们先不考虑这个问题,知道他比if...else应用起来简短就好了。如果很长的话可以结构不够清晰,但是做为一句使用还不比较容易看懂的。好不说闲话........
看完php手册上的例子,对它很感兴趣,再找其他材料很少关于php中三元运算符的介绍,了解更多请看这个例子。以下是三元运算符的层次应用(未知正式命名为何,暂称层次):

php代码:

<?php
$user
='user';
$pwd='jx165';
$mail='uusseerr@domain.com';
$tel='867910000000';
$ck=$user==""?c_no:$pwd==""?c_no:$mail==""?c_no:$tel==""?c_no:c_yes;
echo
$ck=="c_no"?"请填写完整":"谢谢";
//swordmaple php
?>



这个例子是用于form的判断,同理可用做其他方面。
其实就如if...else多个判断效果,依次判断user、pwd、mail、tel的值是否为空,只不过比平常应用长了些多了几次。但提高了效率.

更多应用更待发掘.....

[本文可任意转载,请保留作者名称]

本文关键:【三元运算符的层次与应用】
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top