-1

Javascript では、次のコードでこれを行うことができます。

function test(a) { 
  a && (console.log("somthing"), executeOtherFunction()); 
}

上記のこのコードは、次の省略形です。

function test(a){
  if(a){
    console.log("something");
    executeOtherFunction()
  }
}

これをPHPで機能させることは可能ですか?

PHPで使うという意味ではなくconsole.log、PHPでも同じものを使いたいだけです。

4

3 に答える 3

2

これはPHPで動作するようです。

function test(a) { 
  a && (console_log("somthing") xor executeOtherFunction()); 
}

PHPはエラーなしですべてをboolに変換できると思います。

于 2013-11-04T10:12:20.050 に答える
2

PHP では、条件評価にもショート サーキットがあります。AND(または) を使用すると、値が検出&&されるとすぐに評価が停止します。false

ただし、コンマ,演算子は PHP ではサポートされていません。したがって、2 つの式を . で区切って実行することはできません,。for ループ内でのみ、構文糖衣として許可されます。

for ($a = 2, $b = 4; $a < 3; $a++)
           ^

orこの構造は、次のキーワードでもよく使用されます。

someAction() or log("someAction() execution failed");

someAction()これは、が返された場合にのみエラーをログに記録しますfalse

于 2013-11-04T09:19:59.850 に答える
0

Guillaume Poussel が言ったように、PHP は条件評価で短絡を認識しますが、 を介したコード ブロックの連鎖は認識しません,

PHP の弱い型付けシステムを本当に悪用したい場合は、次のようなものを使用できます。

if ($a && function1() . function2() ) ;
                      ^ concatenate the results of the functions as strings

明らかに、これは関数の戻り値が必要ない場合にのみ機能します。

免責事項: プロダクション コードでこれを使用することはお勧めしませんが、興味深い思考実験です。

于 2013-11-04T09:39:08.533 に答える