The first is decimal notation. The second is octal. The third is hexadecimal. Each is a different base, and in different bases each column represents a different grouping of numbers. For example, binary is base 2; so 10 in binary is 2 (the 1 in the second column represents a set of 2 ones).
Decimal is base 10 - therefore, by column, 1,0 = ten ones. 12 = ten ones plus two, or twelve in decimal.
Octal is base 8 - therefore 1,0 = eight ones. So 012 = eight ones plus two, or ten in decimal.
Hexadecimal is base 16 - therefore 1,0 = sixteen ones. So 0x12 is sixteen ones plus 2 = 18.
The reason the string is displaying everything in decimal notation is that when a number gets converted to a string in PHP it's always displayed as its decimal value. There are functions specifically for displaying numbers in other notations as strings - see for instance dechex() and decoct().