2011-11-18 58 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语言都会返回分配给左侧变量的值,因此它可以是任何类型。