PHP
var_dump(0 == null) //ture
Javascript
console.log(0 == null) //false
Warum ist 0==null in PHP kein numerischer Wert?
原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的. null,0,false在不区分类型的情况下都判为逻辑假 即false
参见PHP手册,下图截取自PHP手册
此表展示了PHP二元运算符对于运算符左右运算子进行的处理。
可见,0 == null,一个运算子为数字,另一个运算子为null,符合表中的第二种情况,所以按照描述,两边同时被转成相应的布尔值,也就是说0和null都被转成了false,这样 false == false就是true。
0 == null
null
0
false
false == false
true
原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的.
null,0,false在不区分类型的情况下都判为逻辑假 即false
参见PHP手册,下图截取自PHP手册
此表展示了PHP二元运算符对于运算符左右运算子进行的处理。
可见,
0 == null
,一个运算子为数字,另一个运算子为null
,符合表中的第二种情况,所以按照描述,两边同时被转成相应的布尔值,也就是说0
和null
都被转成了false
,这样false == false
就是true
。