2016-11-10 77 views
0

我想查看是否有一個簡化的方法來執行正在檢查多個條件的if語句,它使用來自同一函數的數據。在if語句中定義和檢查變量

if($class->function($id) && $class->function($id)['key'] > 0) 
{ 
    //Do something... 
} 

這裏的問題是我們正在做的是檢索相同的數據2所數據庫調用。具體

$classVariable = $class->function($id); 
if($classVariable && $classVariable['key'] > 0) 
{ 
    //Do something... 
} 

我的問題是,我能實現所有的if語句中相同的效果:一個顯而易見的解決方案是做以下?例如(這將不起作用):

if($classVariable = $class->function($id) && $classVariable['key'] > 0 
{ 
    //Do something... 
} 

這是可能的,是否有這樣做的首選方法?在我看來,定義和使用它在相同的聲明將更乾淨的代碼...

+2

使用' ()'在作業周圍,它會工作得很好。 –

+1

應該指出,雖然你可以這樣做,但這不是推薦的方法。您應該在if語句之前聲明該變量。但是,這是你的代碼,不管你喜歡,你都可以這樣做:) – Kenyon

+0

這很有效。有人知道在定義它之前是否有一個優先選擇,然後執行if語句或在if語句中定義它? 編輯:Kenyon張貼時,我問。謝謝! :) –

回答

1

正如尼說的,使用括號()圍繞$ classVariable賦值和事情應該工作。

(我只是想張貼此作爲一個答案,而不是評論這樣的問題得到解決,對不起Niet的)

通過OP編輯,以顯示代碼的答案...

if(($classVariable = $class->function($id)) && $classVariable['key'] > 0) 
{ 
    //Do something... 
} 
+1

通過添加括號來包含它的外觀,從而減少了您的答案。 – pancho018

+0

@ pancho018 - 我在 –

+0

中加入了另一個34代表,你也可以評論;-)就像Niet一樣。寫作好/更好的答案吸引(積極)的投票,順便說一句。 http://stackoverflow.com/help/how-to-answer –