香港专业教育学院碰到过这样的代码PHP的字符串比较,为什么投浮
<?php
$a = md5('240610708');
$b = md5('QNKCDZO');
echo "$a\n";
echo "$b\n";
echo "\n";
var_dump($a);
var_dump($b);
var_dump($a == $b);
这种评价为2串这可能是一个数量0exxxxxx
。据我所知,如果任一被在一个数字语境中,则字符串将被当字符串在数值上下文被评估为经采取为数字,通过http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion
证实,所得到的值 和类型被确定为如下。
如果字符串不包含任何字符“”,‘E’,或‘E’ 和数值装配到整数类型的限制(如通过 PHP_INT_MAX定义)时,字符串将被评估为一个整数。在所有其他 的情况下,它将被评估为浮动。
该值由字符串的起始部分给出。如果字符串 以有效数字数据开头,则这将是使用的值。 否则,该值将为0(零)。有效的数字数据是一个可选符号 ,后跟一个或多个数字(可选包含小数点 ),后跟可选的指数。指数是 'e'或'E'后跟一个或多个数字。
我只是不确定为什么==
当双方都是字符串类型时触发数值比较。
@Hanky웃Panky在意识到'==='但是当双方都是字符串时,什么导致双方被当作浮动。我知道这发生在有多种类型时 – exussum