Heim  >  Artikel  >  Backend-Entwicklung  >  一个基础有关问题,多谢

一个基础有关问题,多谢

WBOY
WBOYOriginal
2016-06-13 13:23:38786Durchsuche

一个基础问题,谢谢。
echo NULL == false?"true":"false"; //输出true
echo false == '0'?"true":"false"; //输出true

为什么下面会输出false呢?
echo NULL == '0'?"true":"false"; //输出false


PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的。
上面这句话是不是正确的。

------解决方案--------------------
php是种弱类型的语言.
所以当你修改成
echo false == 0?"true":"false"; //输出true

也是成立的,所以不能仅仅靠判断'0'就说他是字符串类型因为你使用的是== 
他并不会进行类型比较

如果你要判断字符串的0 应该是 
echo false === '0'?"true":"false"; //输出false

探讨

false是字符串吗?
为什么echo false == '0'?"true":"false"; //输出true

引用:

'0'是一个字符串了,要是null == ""才会是true。

------解决方案--------------------
来,和我一起读手册....
http://ca.php.net/manual/en/language.operators.comparison.php
中间Comparison with Various Types表格....

不同类型变量比较,首先要做类型转换,怎么转换就决定了最终的结果....


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn