Do you have a question? Post it now! No Registration Necessary. Now with pictures!
- Posted on
- how can one variable equal 2 things??
July 2, 2005, 10:34 pm
rate this thread
$_SESSION['temp'] = "default";
Now if I test the following two conditionals:
if($_SESSION['temp'] == "default")
if($_SESSION['temp'] == 0)
they both return TRUE. I don't understand why this is... if anything, I
would have thought testing if it == 1 would be a boolean true since the
variable exists and is not NULL, but testing if == 1 returns FALSE.
Thanks in advance.
Re: how can one variable equal 2 things??
This is due to implicit type conversion. When you use the equality (==)
rather than strict equality (===) and compare two different types, the
values are converted into something that can be compared in some
If you compare a string to a number, an attempt is made to convert that
string to a number first. If the string starts with valid number data,
then that will be the used value, otherwise the comparison will be
against zero (0).
The string 'default' doesn't have anything resembling a number at its
start, so it will be converted to zero. You then perform a comparison
against literal zero, hence the expression evaluates to true.
See the type comparison page, as well as the section on converting
strings to numbers, in the manual.
Prefix subject with [News] before replying by e-mail.