为什么整数数据类型十六进制、八进制和二进制被转换为十进制类型,然后显示在浏览器中?

Why the integer data types hexadecimal, octal and binary are getting converted to decimal type and then displayed in a browser?

我正在使用 PHP 7.1.11

我遵循 PHP 代码:

<?php
$a = 0123; // an octal number (equivalent to 83 decimal)
$b = 0x1A; // a hexadecimal number (equivalent to 26 decimal)
$c = 0b11111111; // a binary number (equivalent to 255 decimal)

var_dump($a); //Output : int(83) int(26) int(255) 
var_dump($b); //Output : int(26) int(255)
var_dump($c); //Output : int(255)
?>

我的问题是为什么八进制、十六进制和二进制整数数据类型中包含的数据被转换为十进制,然后与新数据类型 整数 一起显示在浏览器中?

为什么不显示变量的原始值,也不显示其原始数据类型?

为什么会有转换步骤,谁出于什么原因这样做的?

如果我们采用其他数据类型life boolean、float、string,就不会发生这种情况。一切都按预期工作那么为什么这些整数数据类型会发生这种奇怪的事情?

只有一种(整数)数字,数字的格式完全不重要。值 052420x2A 都表示完全相同的值。 PHP 不记得数字是如何创建的;它不存储该信息,因为它是无用的信息,只会浪费 space 被存储。二进制、八进制和十六进制表示法只是方便的表示法,可让您以最适合上下文的表示法表示数字;都被解析为相同值的int,然后默认以十进制表示输出。