3

if (...) { }これが可能かどうかはわかりませんが、ステートメントでチェックされている間に変数を割り当てる方法を探しています。基本的にこれを作る何か...

$var = somefunction();

if ($var == 10) {
    #do something
}

このようなものに

if(($var = somefunction()) == 10) {
    #do something
}

私が言ったように、これが可能かどうかはわかりませんが、最初に変数を割り当てることを節約する方法があるかどうか疑問に思いました。配列またはfalseを出力する関数があるので、これが必要です。


ありがとう :)

4

4 に答える 4

5

これも機能します:

if(($var = somefunction()) == 10) {
    #do something
}

しかし、あなたが提案した最初の方法は、同等性チェックのために==or===ではなくorを使用する必要があるという事実を除けば、シンプルで明確で読みやすいものです。=

$var = somefunction();

if ($var == 10) {
    #do something
}

なぜそれを使わないのですか?

于 2013-03-19T13:02:17.283 に答える
1

私はこのようなものがうまくいくと信じています:

if(($var = somefunction()) == 10) {
    //Do something
}

要は評価の問題です。ブラケットが最初に評価されるため、$var = somefunction()最初に実行され、次に戻り値 ($val の値) が 10 に対してチェックされます。

于 2013-03-19T13:06:35.660 に答える
1

後で使用するために変数が必要ない場合は、

if (somefunction() == 10) {
  //do something
}

も十分でしょう。

于 2013-03-19T13:08:53.713 に答える
-1

これを試して

$var ;

 if (true) {
   $var= somefunction();
   if($var==10) {
      # Handler
    }
  }
于 2013-03-19T13:05:10.737 に答える