香港專業教育學院碰到過這樣的代碼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