使用逻辑OR设置变量

时间:2011-12-12 09:27:32

标签: php logical-operators

$db_hased_pw = $result["password"] || false;

我理解这行代码的用法,但是它会评估为假吗?

仅当$db_hased_pw未定义时

才会$result["password"]等于假?

如果$db_hased_password未设置,或者为false,或为零,则

$result["password"]是否设为false?

2 个答案:

答案 0 :(得分:3)

$result["password"]为“假值”时,它将评估为false。 empty上的页面描述了这些值。

这些是等价的:

$db_hased_pw = !!$result["password"];
$db_hased_pw = (bool) $result["password"];

如果$result["password"]确实未定义,您应该使用:

$db_hased_pw = !empty($result["password"]);

以避免通知。

答案 1 :(得分:1)

来自PHP文档:

转换为布尔值时,以下值被视为FALSE:

  • 布尔值FALSE本身
  • 整数0(零)
  • 浮点数0.0(零)
  • 空字符串,字符串“0”
  • 包含零元素的数组
  • 一个零成员变量的对象(仅限PHP 4)
  • 特殊类型NULL(包括未设置的变量)
  • 从空标签创建的SimpleXML对象

您可以在this页面上阅读更多内容。