2

在javascript世界中,我们可以通过三元比较来运行一个函数,我想看看这是否适用于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" );
4

1 回答 1

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"; });
于 2013-06-19T17:41:27.223 回答