> -----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