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