PHP简写(三元)功能

时间:2013-06-19 17:28:31

标签: php if-statement ternary

在javascript世界中我们可以通过Ternary比较来运行一个函数,我想看看这是否适用于PHP,它似乎只是在一定程度上。

这不是生产用途,也不是实际使用。这只是一个主题,可以看到PHP在三元比较中的深入程度。

<?
 $a = 1;
 $b = 1;

 function doThis($a){
     print "$a";
 }

 $a == $b ? ( doThis('TRUE') ):( print "FALSE" );
?>

上面的代码完美无缺,但是,是否可以在()中运行多个函数和/或操作?

如?

 $a == $b ? ( doThis('TRUE'), doThis('THAT') ):( print "FALSE" );

甚至?

$a == $b ? ( function(){ print "33"; doThis("TRUE") } ):( print "FALSE" );

1 个答案:

答案 0 :(得分:2)

你可以让三元组返回一个执行所需函数的闭包

 $func = $a==$b?function(){ print "33"; doThis("TRUE"); }:function(){ print "FALSE"}); );
 $func();

或借用javascript你可以创建一个IIFE(立即调用的函数表达式)

 $a==$b?call_user_func(function(){print "33"; doThis("TRUE");}):
        call_user_func(function(){print "FALSE"; });