PHP中的两个字符串居然相等?

eechen的粉丝 发布于 2013/04/24 17:49
阅读 1K+
收藏 1
PHP

$a="001111000011001100110000110110000110011001110001110110000000110010000110011001100001111000";

$b="001111000011001100110000110000000110000001100000011000000110000001100000011000000111111110";

明明不一样啊,居然相等???


加载中
0
帖子列表
帖子列表

var_dump(gettype($a)); // string

参考: http://php.net/manual/zh/types.comparisons.php

string 和 string的松散比较(==)的结果是 true

1
狂飙的小蜗牛
狂飙的小蜗牛

类型转换了吧, 用全等比较就没问题了。。

var_dump($a===$b);

我不叫大脸猫
我不叫大脸猫
回复 @YeaWind : switch的比较是松散比较,想全等比较只能使用显式类型转换,例如switch( (string)$x)
eechen的粉丝
eechen的粉丝
switch怎么全等比较啊
1
wc1217
wc1217
$x="123456789012345678901234567890"; $y="123456789012345670000000000000";
//echo  ($x==$y)?"equal":"not_equal";
echo (float)$x;
echo '<br>';

echo (float)$y;
因为==把数字字符串转成浮点数,没有精度,32bit的系统好像只到16位就不行了,
参考例子:http://www.php.net/manual/zh/types.comparisons.php#108264

1
南湖船老大
南湖船老大

兼容性问题。

64位就正常了

返回顶部
顶部