对布尔值进行类型布尔操作会导致错误

时间:2016-08-08 14:01:20

标签: php

在PHP中,当对返回true的布尔操作进行类型转换时,由于某种原因,解释器会将其类型转换为false。为什么是这样?请看以下示例:

(bool)  1 === 1  // false
(bool) (1 === 1) // true

此操作应返回true,但由于某种原因,它会返回false。添加额外的括号时,它确实可以正常工作。有人可以解释为什么会这样吗?我目前正在使用PHP 7.0.8

1 个答案:

答案 0 :(得分:1)

这是操作的顺序。第一个语句在等式检查之前评估bool

(bool)  1 === 1 is the same as ((bool)  1) === 1

(bool) (1 === 1)

首先评估括号内部。

1与TRUE不同。