【发布时间】:2012-01-01 01:47:54
【问题描述】:
我从未在 if 语句或其他控制结构(PHP 中的示例)中使用过以下类型的表达式:
if ( ( $p = someFunction() ) !== false ) {
// Use $p
}
我通常会取出这种赋值表达式并在我在 if 语句中检查它之前对其进行评估。
我的问题是:
- 这种技术有名称吗?
- 赋值后 ($p = someFunction()) 可以测试哪些类型? (例如只有 true/false 或 someFuntion 返回的实际类型)?
- 这是否被推荐并安全地用于大多数语言并期望类似的行为?
【问题讨论】:
-
@ladaghini 哇,这些都是要记住的大表格;)
-
请注意,使用严格相等运算符(
===和!==)时,必须仔细编码条件表达式。如我给出的链接所示,1 === TRUE将评估为FALSE,尽管 1 具有“真实”值。===和!==不要测试“真实性”;他们测试同一类型内的相等性。如果你想保持一个值的真实性,试试echo !!$value。其他编程语言的真实性表可能不同。
标签: syntax programming-languages