在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" );
答案 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"; });