2011-11-18 97 views
0

我從來沒有使用下列一種表達式的if語句或其他控制結構(例如PHP):表達的控制語句

if (($p = someFunction()) !== false) { 
     // Use $p 
} 

我通常採取這種賦值表達式出來,並把它評估在我在if語句中檢查之前。

我的問題是:

  • 是否有一個名稱爲這種技術?
  • 轉讓後($ p = someFunction())可以測試哪些類型? (例如,只有true/false或someFuntion返回的實際類型)?
  • 這是reccomended和安全使用大多數語言,並期望類似的行爲?
+0

供您參考:[PHP類型比較表](http://php.net/manual/en/types.comparisons.php)。 – ladaghini

+0

@ladaghini哇,這些都是要記住的大表;) – zaf

+0

請注意,當使用嚴格等號運算符('==='和'!==')時,條件表達式必須仔細編碼。正如我給出的鏈接所示,'1 === TRUE'將評估爲'FALSE',儘管1具有「真值」值。 '==='和'!=='不測試「真實性」;他們測試相同類型內的平等。如果你想休息一個值的真實性,試試'echo !! $ value'。其他編程語言的真實性表可能不同。 – ladaghini

回答

0

您可以使用賦值表達式的返回值來命名它嗎?

你爲什麼總是這樣問?你必須檢查你的語言是否支持這種類型的代碼。大多數C語言都會返回分配給左側變量的值,因此它可以是任何類型。