三元运算符是大家都熟悉的了,在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的值是否为空,只不过比平常应用长了些多了几次。但提高了效率.
更多应用更待发掘.....
[本文可任意转载,请保留作者名称]