2016-07-30 93 views

回答

20

這是因爲011被視爲八進制值,因爲前導0

這裏的更深入的說明:

  1. 011文字識別爲八進制
  2. 它然後轉換成十進制值,相當於9
  3. 的實際發生的比較如下所示:9 == 11 // false

'011' == 11開始,它的計算結果爲true,因爲當字符串與整數比較時,它也被強制爲整數值。有趣的是,字符串中的前導零在進程中被忽略,並且php解釋器將該值視爲而不是一個八進制數

+2

非常好的解釋。 –

+1

我知道八進制表示時沒有引用,但假設引用相同,確實很有趣! –

+0

正確! 'var_dump(011 == 9);''var_dump(011 === 9);' – Progrock

相關問題