Site icon Hip-Hop Website Design and Development

How to declare hexadecimals on a PHPDoc Block

TL;DR: For PHP Hexadecimals, Decimals and Octals are all Integers, so they must be declared as @param integer
While I was working on a patch I had to write the docblock of a function which received a hexadecimal number and I wasn’t sure what I was supposed to put in the @type param.
I went to WordPress maintenance support plans‘s API documentation and comments standards page to see which is the best type for this param and I found the following:
Data types can be primitive types (int, string, etc.), complex PHP built-in types (array, object, resource), or PHP classes.
Alright, a hexadecimal number is not a complex PHP built-in type nor a PHP Class so it must be a primitive type, so I went to the PHP documentation page to see which primitives PHP has and I found the following:
boolean
integer
float (floating-point number, aka double)
String
So there wasn’t a specific reference for a Hexadecimal number…
The solution:
In the end Pieter Frenssen helped me (Thanks!) with this, and he showed me that in PHP, it doesn’t matter what the base number is and it can be an octal, hexadecimal or a decimal, for PHP they all are integers (which makes sense but I wanted to be sure) and he shared this small snippet where we can see that PHP sees the numbers as integers and the base doesn’t matter:

$ php -a
Interactive shell

php > var_dump(gettype(0x0f));
string(7) “integer”

php > var_dump(0x08 === 8);
bool(true)

So if you are writing the documentation of a function in which one of its params is a hexadecimal number you must declare it as Integer.
Source: New feed