skaterdav85 Posted December 28, 2009 Share Posted December 28, 2009 Is NULL the same as 0, an empty array array(), or a blank string? I know that all of these have the value False.Also, whats the difference between is_null() and empty()? Link to comment Share on other sites More sharing options...
Synook Posted December 28, 2009 Share Posted December 28, 2009 It depends on the programming language. In PHP, NULL has its own special meaning: The special NULL value represents a variable with no value...A variable is considered to be null if: * it has been assigned the constant NULL. * it has not been set to any value yet. * it has been unset(). In PHP, null, along with empty strings, 0, and some other things, are all considered false. This is, however, not true in some other languages, such as Java, where false is again a distinct value.When converting to boolean, the following values are considered FALSE: * the boolean FALSE itself * the integer 0 (zero) * the float 0.0 (zero) * the empty string, and the string "0" * an array with zero elements * an object with zero member variables (PHP 4 only) * the special type NULL (including unset variables) * SimpleXML objects created from empty tags Link to comment Share on other sites More sharing options...
skaterdav85 Posted December 28, 2009 Author Share Posted December 28, 2009 so would these be equivalent? unset($var)$var=NULL$var="" Link to comment Share on other sites More sharing options...
Ingolme Posted December 28, 2009 Share Posted December 28, 2009 so would these be equivalent?unset($var)$var=NULL$var="" No, those are two different things.One indicates that a variable has no value, the other indicates that a variable contains a string with length zero. Link to comment Share on other sites More sharing options...
justsomeguy Posted December 28, 2009 Share Posted December 28, 2009 Note that null only evaluates to false if you use loose comparison. If you use strict comparison null only equals null, and false only equals false. $null = null;$false = false;$str = '';if ($null == $false){ echo 'Null and false are considered equivalent for loose comparison. ';}if ($false == $str){ echo 'The empty string is considered equivalent to false for loose comparison. ';}if ($null === $false){ echo 'This will not print.';}if ($null !== $false){ echo 'Null is not equivalent to false for strict comparison. ';}if ($str !== $false){ echo 'The empty string is not equivalent to false for strict comparison. ';} Link to comment Share on other sites More sharing options...
skaterdav85 Posted December 28, 2009 Author Share Posted December 28, 2009 whats the difference between loose and strict comparison? Link to comment Share on other sites More sharing options...
ShadowMage Posted December 28, 2009 Share Posted December 28, 2009 whats the difference between loose and strict comparison?A loose comparison evaluates only the values of each side of a condition, whereas a strict comparison checks value AND type.An empty string: ""and zero integer: 0are considered to have the same value.BUT an empty string and a zero integer do not have the same type. Link to comment Share on other sites More sharing options...
skaterdav85 Posted December 28, 2009 Author Share Posted December 28, 2009 so what would the data type of NULL evaluate to? Link to comment Share on other sites More sharing options...
Ingolme Posted December 29, 2009 Share Posted December 29, 2009 so what would the data type of NULL evaluate to? "null" Link to comment Share on other sites More sharing options...
Redroest Posted December 29, 2009 Share Posted December 29, 2009 for php his means the following (source php.net) <?php//This condition will return falseif(isset($var)){ echo $var.' is set and can be empty or not';}$var = 0;// Evaluates to true because $var is emptyif (empty($var)) { echo '$var is either 0, empty, or not set at all';}// Evaluates as true because $var is setif (isset($var)) { echo '$var is set even though it is empty';}$var = "11";// Evaluates to false because $var is filledif (empty($var)) { echo '$var is either 0, empty, or not set at all';}//Delete the $varunset($var);//Now the $var is deleted so it is not empty because it does NOT even exist?>You can compare the variables in php with a container. They are there to hold something (integers, strings etc) in securitychecks (in php if/else statements) the first scanner scans IF the container is present (isset... IS SET) and the second scanner scans if there is something in the container (=EMPTY...TRUE or not... FALSE). Link to comment Share on other sites More sharing options...
Distortion Posted December 29, 2009 Share Posted December 29, 2009 An empty string: ""and zero integer: 0are considered to have the same value.Really? so what about 0 and "0"...Does this mean that "" will equal "0" in loose comparison? Link to comment Share on other sites More sharing options...
ShadowMage Posted December 29, 2009 Share Posted December 29, 2009 Really? so what about 0 and "0"...Does this mean that "" will equal "0" in loose comparison?When converted to boolean, yes."" is equivalent to false and"0" is equivalent to false$test1 = "";if ($test1 == true) {echo "true";} else {echo "false";} //echoes false$test2 = "0";if ($test2 == true) {echo "true";} else {echo "false";} //also echoes falseif ($test1 == $test2) {echo "true";} else {echo "false";} //This will also echo false When compared to a boolean $test1 and $test2 are evaluated the same, but when compared to each other, since they are both strings their string values are compared. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.