我真的很困惑为什么这个操作有效。有人可以解释一下吗?
$test1 = "d85d1d81b25614a3504a3d5601a9cb2e";
$test2 = "3581169b064f71be1630b321d3ca318f";
if ($test1 == 0)
echo "Test 1 is Equal!?";
if ($test2 == 0)
echo "Test 2 is Equal!?";
// Returns: Test 1 is Equal!?
为了澄清起见,我正在尝试比较字符串"0"
to the $test
变量。我已经知道要修复代码,我可以将其附上(正如我应该有的那样)0
in ""
s
我想知道这是 PHP 错误、服务器错误还是某种有效的操作。根据https://www.php.net/types.comparisons https://www.php.net/types.comparisons this 不应该已经工作了。
Edit:从头开始,显然它确实提到了字符串和 0 之间的松散比较是正确的。但我还是不知道为什么。
Edit 2:我修改了我的问题,为什么$test2
的价值"3581169b064f71be1630b321d3ca318f"
不行?
来自 PHP 手册 http://il.php.net/manual/en/language.types.string.php#language.types.string.conversion:
字符串转换为数字
当一个字符串在 a 中被求值时
数字上下文,结果值
和类型确定如下。
该字符串将被评估为
如果包含以下任意一项,则为浮点数
字符“.”、“e”或“E”。
否则将被评价为
整数。
该值由初始值给出
字符串的一部分。如果字符串
从有效的数字数据开始,这
将是使用的值。否则,
值将为 0(零)。有效数字
data 是一个可选的符号,后面是
一位或多位数字(可选
包含小数点),后面跟着
通过一个可选的指数。指数
是“e”或“E”后跟一个或
更多数字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)