> -----Original Message-----
> From: Sunfire [mailto:[EMAIL PROTECTED]]
> Sent: 06 February 2003 21:27
> 
> actually so does empty end up testing true on an empty var... 
> thats because
> empty thinks "" or string(0) is actually a string just 
> blank... a trick to
> do with empty is use !empty which will say if the string is 
> at least 1 char
> long other wish if it is less than 1 char long even though a 
> string does
> exist then it must be empty.. because:
> if(empty(var)){
> echo "its blank";//eek doesnt work cuz string does exist
> }else{
> echo "something in there";//defaults regardless string(0)""
> //is a string so above block will never be used
> //im sort of confused because:
> if(!empty(var)){
> echo "something in there";//it works for a wierd reason
> }else{
> echo "its blank"//works if string(0)"" or null exists
> }
> its strange that !empty will always return a 0 char 
> string/null as false but
> empty it doesnt care its always true regardless... any reason 
> for that? cuz
> im confused as to why you have to use !empty instead of empty


OK, let's set some of this confusion to rest:

isset($x) will be TRUE if $x *both*:
   - exists as a variable in the current scope (even if it
     has not yet been assigned a value, as might happen if you
     use a var or global declaration).
   - is not NULL

empty($x) will be TRUE if $x is *any* of the following:
   - a non-existent variable (in the current scope)
   - NULL
   - a numeric 0 (or 0.0)
   - the empty string ("") or the string "0"
   - an empty array

is_null($x) is the same as !isset($x), except that is_null()
produces an undefined variable notice if $x does not exist
(which you will not see if your error_reporting is set not to
display notices, or if you suppress it with @).

and finally, if($x) is the same as if(!empty($x)), except
that if($x) will also produce an undefined variable notice.

This is all defined in the online manual, although it's
sometimes a bit hard to digest.  There's also a great little
set of tables that may help you visualize things better at
http://www.blueshoes.org/en/developer/php_cheat_sheet/

Cheers!

Mike

---------------------------------------------------------------------
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730      Fax:  +44 113 283 3211 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to