我目前正在使用(基本上)这种方法打印两个值中的任何一个非空,其中一个优先于另一个:
<?php
$a = "high priority text that may be empty or null";
$b = "low priority fallback that may also be empty or null";
?>
The value we want to echo is: <?=($a)?$a:$b?>.
在代码中看起来更像是:
The value we want to echo is: <?=($_GET['the_insanely_long_name'])?$_GET['the_insanely_long_name']:$old_val['the_insanely_long_name']?>
在某些语言中,以下类型的语句有效,但不适用于PHP:
The value we want to echo is: <?=$_GET['the_insanely_long_name']||$old_val['the_insanely_long_name']?>
PHP中有类似的技巧可以进一步缩短或简化此代码吗?
答案 0 :(得分:1)
在PHP 5.3+中,您可以使用?:
运算符(manual):
从PHP 5.3开始,可以省略三元运算符的中间部分。表达式expr1?:expr3如果expr1的计算结果为TRUE则返回expr1,否则返回expr3。
<?= ($a) ?: $b; ?>