Interview question: In php, is 123==0123? Interview question: In php, is 123==0123? php php

Interview question: In php, is 123==0123?


This code:

var_dump(123);var_dump(0123);

will get you:

int 123int 83

This is because 0123 is octal notation (because of the 0 at the beginning), while 123 is decimal.


For more information, you can take a look at the Integer section of the manual.


An even trickier question would have been to ask about 79 and 079, for instance :

var_dump(79);var_dump(079);

will get you :

int 79int 7

(9 is not a valid digit in octal ;-) )


Prefixing a number with 0 indicates octal (base 8), much the same way 0x indicates hex (base 16).


1) When we use == operator in php, it checks if values are equal. So 5=="5" => true2) When we use === operator in php, it checks if values and data types are equal. So 5==="5" => false

123==0123 => falseALSO 123 === 0123 => false

123 is decimal number : 1230123 is an octal number (as it starts with 0) : 83

123 is not equal to 83