面试问题:在php中,123==0123吗?

2022-08-30 18:39:11

我已经回答它是错误的。然后他问为什么?我无法回答。任何人都可以做出答案吗?我非常有兴趣学习它。


答案 1

此代码:

var_dump(123);
var_dump(0123);

将得到你:

int 123
int 83

这是因为 是 八进制表示法 (因为开头的 0),而 是十进制。0123123


有关详细信息,可以查看手册的整数部分。


一个更棘手的问题是询问 和 ,例如:79079

var_dump(79);
var_dump(079);

会得到你 :

int 79
int 7

9 不是八进制的有效数字 ;-) )


答案 2

在数字前面加上八进制(以 8 为基数)的前缀,这与表示十六进制(以 16 为基数)的方式大致相同。00x


推荐