$VAR = 0 != false
| From: | Brian T. Allen | Date: | Tue, 08 Aug 2000 01:44:48 +0000 |
| Subject: | $VAR = 0 != false | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-10563@lists.php.net to get a copy of this message | ||
Hi *,
I have an ecommerce site where the shopping cart supports options for items.
One of the items has an option that is stored in the database as 0 (zero). It doesn't mean
false, it means that an option was selected, and the option was 0.
If I echo out the variable, you get "0" echoed out.
$VAR = "0";
echo $VAR;
You get what you would expect.
But, if you verify the variable exists first:
if($VAR){
echo $VAR;
}
You get nothing, even though the variable is set. It is set to zero, granted, but it is set!
I can understand that in some types of tests you want 0 to be synonimous with false, but here I am
only testing if the variable is set to a value, be it false, 0, or something else.
I just tested, and isset() works like I think it should (I am NOT the source of all truth and
knowledge, just trying to make this make sense), but !empty() does not:
if(!empty($VAR)){
echo $VAR;
}
even though $VAR isn't empty.
Thoughts, comments, flames?
Thanks,
Brian