1

文字列 '008' とそれ以上の型ジャグリングが (より適切な単語がないために) 失敗する原因となるものについて、何が特別なのでしょうか? 008 未満のすべての番号付き文字列は正常に機能しますが、008 以上の文字列は数字に等しくないように見えますか

より正確には、007、008、および 009 の比較に問題があるようですが、PHP は 008 のようなものを整数としてカウントしませんか?

$MyString='007'; //Works fine.
$MyString='008'; //Fails.
$MyString='009'; //Fails.

if($MyString==007) return 'ABC';
if($MyString==008) return 'DEF';
if($MyString==009) return 'GHI';
4

1 に答える 1

6

数字の先頭に 0 を付けることは、8 進数 (基数 8) を示します。8 進数では、0 から 7 の数字のみが有効です。

http://php.net/manual/en/language.types.integer.php

于 2013-05-21T08:22:59.083 に答える