2013-03-19 39 views
3

我不確定這是否甚至可能,但我正在尋找一種方法來分配一個變量,同時它在if (...) { }語句中被檢查。基本上一些東西,使這個...分配變量,同時檢查它

$var = somefunction(); 

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

弄成這個樣子

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

正如我所說的林不知道如果這是可能的,但如果有一種方法來保存第一個分配的變量只是想知道。我想要這個,因爲我有一個函數輸出一個數組或false。


謝謝:)

+0

'if($ var = 10)'只會檢查變量賦值是否成功。 – 2013-03-19 13:01:51

+1

@ EM-Creations'如果($ var = 10)'可能是許多其他人犯的同一個初學者錯誤。 – 2013-03-19 13:06:44

+0

The single =只是一個錯字抱歉:) – 2013-03-19 13:14:11

回答

3

這也將工作:

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

,但你提出的第一種方式是簡單,清晰,易讀,除了你需要使用==事實或===,不=,對於相等檢查:

$var = somefunction(); 

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

你爲什麼不使用它?

+1

嗯,你打賭我給答案,因爲它似乎:) – ATaylor 2013-03-19 13:08:00

+0

感謝您的幫助。你也ATaylor :) – 2013-03-19 13:16:52

0

嘗試這個

$var ; 

if (true) { 
    $var= somefunction(); 
    if($var==10) { 
     # Handler 
    } 
    } 
1

我相信這樣的事情會的工作:

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

本質上,它是評價的問題。支架會首先評估,這就是爲什麼它會首先執行$var = somefunction(),然後檢查返回值($ val的值)對10

1

如果您不需要爲以後使用的變量,然後

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

也是足夠的。