这不起作用:
(int)08 == (int)09==0
但是这个和这个呢?
(int)07==7
(int)06==6
08 是八进制的(因为它以 0 开头),因此它是无效的。请参阅文档。
因为08
和09
不是有效的八进制数。请参阅文档中的警告。
您正在键入以八进制为基数的无效数字。
// Syntax error
//(int)08 == (int)09==0
// This works
(int)08==0;
(int)09==0;
// This also works
(int)08 == ((int)09==0);
您正在使用显式类型转换(int)
更好的使用intval().
要使用十六进制表示法,请在数字前加上 0x。
所以,
$num = (int)0x9
$num == 9