これが機能しないもの:
(int)08 == (int)09==0
しかし、これとこれはありますか?
(int)07==7
(int)06==6
08 は 8 進数であるため (0 で始まるため)、無効です。ドキュメントを参照してください。
08
と09
は有効な 8 進数ではないためです。docs の警告を参照してください。
8 進数で無効な数値を型キャストしています。
// Syntax error
//(int)08 == (int)09==0
// This works
(int)08==0;
(int)09==0;
// This also works
(int)08 == ((int)09==0);
16 進数表記を使用するには、数値の前に 0x を付けます。
したがって、
$num = (int)0x9
$num == 9