1 <?php 2 /* 數字與字串比較測試 */ 3 // 數字0與Null 字元串比較 4 if (0 == '') 5 echo "0 == ''<br/>"; // ok 6 7 // 數字0與字串'0'比較 8 if (0 == '0') 9 echo "0 == '0'<br/>"; // ok10 11 // 數字0與字串'0.0'比較12 if (0 == '0.0')13 echo "0 == '0.0'<br/>"; // ok14 15 // 數字0與字串'00'比較16 if (0 == '00')17 echo "0 == '00'<br/>"; // ok18 19 // 數字0與字串'1'比較20 if (0 == '1')21 echo "0 == '1'<br/>"; // not ok22 23 // 數字0與字串'a'比較24 if (0 == 'a')25 echo "0 == 'a'<br/>"; // ok!!!26 27 // 數字0與字串'b'比較28 if (0 == 'b')29 echo "0 == 'b'<br/>"; // ok!!! 30 31 // 數字0與字串'as8dfu9asfofosj24279sjdf'比較32 if (0 == 'as8dfu9asfofosj24279sjdf')33 echo "0 == 'as8dfu9asfofosj24279sjdf'<br/>"; // ok!!!34 35 // 數字0與字串'2a'比較36 if (0 == '2a')37 echo "0 == '2a'<br/>"; // not ok38 39 // 數字0與字串'0a'比較40 if (0 == '0a')41 echo "0 == '0a'<br/>"; // ok42 ?>
解釋
<?php echo (float)'a' . '<br/>'; // 0 echo (float)'2a' . '<br/>'; // 2 echo (float)'a2a' . '<br/>'; // 0 echo (float)'22a' . '<br/>'; // 22?>
php對於有些含有字母的字串先自動轉為0再比較,
而對於以數字開頭的字串先自動轉為相應的數字再比較。