I have answered it is false. then he asked why? i couldn't answer. Can anyone make the answer? I am very interested to learn it.
This code:
var_dump(123);
var_dump(0123);
will get you:
int 123
int 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 79
int 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" => true 2) When we use === operator in php, it checks if values and data types are equal. So 5==="5" => false
123==0123 => false ALSO 123 === 0123 => false
123 is decimal number : 123 0123 is an octal number (as it starts with 0) : 83
123 is not equal to 83
Because 0123 means "123 in octal (base 8)", which is 83 in decimal.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With