It always seems impossible until it is done.
PHP isset() vs empty() vs is_null() vs if($var) vs ??
See blog article for explanation.
PHP version is 8.3.10
Value of variable ($var) | isset($var) | empty($var) | is_null($var) | if($var) | $var ?? '-' Null Coalesce Operator (since PHP 7.0) |
---|---|---|---|---|---|
'' (an empty string) | bool(true) | bool(true) | bool(false) | false | string(0) "" |
" " (space) | bool(true) | bool(false) | bool(false) | true | string(1) " " |
" " (two spaces) | bool(true) | bool(false) | bool(false) | true | string(2) " " |
false | bool(true) | bool(true) | bool(false) | false | bool(false) |
FALSE | bool(true) | bool(true) | bool(false) | false | bool(false) |
true | bool(true) | bool(false) | bool(false) | true | bool(true) |
TRUE | bool(true) | bool(false) | bool(false) | true | bool(true) |
array() (an empty array) | bool(true) | bool(true) | bool(false) | false | array(0) { } |
new stdClass() (an empty object) | bool(true) | bool(false) | bool(false) | true | object(stdClass)#140 (0) { } |
NULL | bool(false) | bool(true) | bool(true) | false | string(1) "-" |
"0" (0 as a string) | bool(true) | bool(true) | bool(false) | false | string(1) "0" |
0 (0 as an integer) | bool(true) | bool(true) | bool(false) | false | int(0) |
0.0 (0 as a float) | bool(true) | bool(true) | bool(false) | false | float(0) |
var $var; (a variable declared, but without a value) | bool(false) | bool(true) | bool(true) | false | string(1) "-" |
NULL byte ("\0") | bool(true) | bool(false) | bool(false) | true | string(1) " " |
Recent comments