<?php $a = null; $b = 0; $c = ''; $d = false; var_dump(isset($a)); var_dump(isset($b)); var_dump(isset($c)); var_dump(isset($d)); ?>
The isset() function returns false if the variable is null or not set. For other values like 0, empty string, or false, it returns true.
<?php $x = 0; $y = '0'; $z = null; $w = []; var_dump(empty($x)); var_dump(empty($y)); var_dump(empty($z)); var_dump(empty($w)); ?>
The empty() function returns true for values that PHP considers empty: 0, '0', null, empty array, false, and empty string.
<?php $var = null; var_dump(is_null($var)); var_dump(isset($var)); unset($var); var_dump(is_null($var)); var_dump(isset($var)); ?>
is_null() returns true if the variable is null or unset (triggers notice when unset). isset() returns false if null or unset. Option A shows the var_dump outputs; notice is additional error output.
<?php var_dump(empty($undefinedVar)); var_dump(isset($undefinedVar)); ?>
empty() returns true for undefined variables without raising a notice. isset() returns false for undefined variables.
<?php $var1 = 0; $var2 = null; $var3 = ''; if (isset($var1) && !empty($var1)) { echo 'A'; } if (is_null($var2) || empty($var2)) { echo 'B'; } if (!isset($var3) || empty($var3)) { echo 'C'; } ?>
First condition: isset(0) true, but empty(0) true so !empty(0) false → no 'A'.
Second: is_null(null) true → 'B'.
Third: !isset('') false, but empty('') true → 'C'.
Output: BC
