学习 php 的时候有看到过相似的总结归纳,但还是会忘,只有自己在实践中犯错了才能印象深刻。很多时候会把一个字符串、或者一个数组作为判定条件,然后不经意间就犯错了。

比如 '0' == false 是 ok 的,但 '0.0' 值为 true。数组里面 array() == false 是 ok 的,但 array(0) 值为 true== 在判断条件里是会自动转换两边类型的,当直接将字符串或者数组作为判断条件时,其实就相当于判断 '0.0' == truearray(0) == true

在 php 中以下类型的值会被判定为 false:

  • 0
  • 0.0
  • ''
  • '0'
  • array()
  • null