2

JavaScript の世界では、3 項比較を介して関数を実行できます。これが PHP に適用されるかどうかを確認したかったのですが、ある程度しか適用されないようです。

これは本番用ではなく、実際に使用されることもありません。これは、PHP の 3 項比較の詳細な範囲を確認するためのトピックにすぎません。

<?
 $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 に答える