php中123 == 0123 相等成立吗
答案是否定的。这是因为0123表示123以8为底(八进制数),而其等效十进制为83。
给数字加上前缀0表示它是一个八进制(以8为底)的数字。这类似于以下事实:0x表示十六进制(基数为16)的数字。
请看以下代码行-
示例
var_dump(123); var_dump(0123);
输出结果
这将产生以下输出-
int 123 int 83
这是由于以下事实:0123是八进制表示法(请注意开头应为0),而123是十进制数。
现在看以下代码-
示例
var_dump(79); var_dump(079);
输出结果
这将产生以下输出-
int 79 int 7