3

我不确定这是否可能,但我正在寻找一种在if (...) { }语句中检查变量时分配变量的方法。基本上是什么使这...

$var = somefunction();

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

变成这样

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

正如我所说,我不确定这是否可能,但只是想知道是否有办法先保存分配变量。我想要这个,因为我有一个输出数组或错误的函数。


谢谢 :)

4

4 回答 4

5

这也将起作用:

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

但是您提出的第一种方法简单、清晰且易读,除了您需要使用==or ===, not=进行相等检查:

$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 回答