At 03:06 PM 2/6/2002 -0500, Erik Price wrote: >Pretty confusing. Can anyone shed some light on whether or not there is a >final definite way to do this? I've used (!($_POST['var'])) with no >problems in the past, but does good coding style suggest that I use >(!isset($_POST['var'])) now?
The problem with using (!$_POST['var']) as an expression is that you are asking the parser to evaluate the expression as a boolean. If $_POST['var'] isn't a boolean (and it won't be, because unless I'm mistaken all POST or GET variables are treated as strings unless you cast them) then the parser does an implicit cast to boolean while evaluating your expression. This is fine for most cases, but let's say that $_POST['var'] *is* set to either an empty string ("") or a string containing zero ("0"). Your test will fail, because both of these are evaluated as FALSE when cast as a boolean. That's the reason that isset() is a little more general purpose. If you aren't worried about missing an empty string or a string containing "0" then you can continue to use the method you have been using. For more info, see this: <http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php