使用正确的函数/符号很重要,而不仅仅是看起来可以正常工作的任何东西。现有答案中未提及的一些事项需要考虑。
用于isset检查变量是否尚未设置或已设置为null。
用于empty检查变量是否 == false。null与issetfalse一样,如果尚未设置变量,则不会引发任何通知。
if (!$variable)orif ($variable == false)与 相同empty,只是如果未设置变量将引发通知。
if ($variable !== null)与 相同isset,只是如果未设置变量将引发通知。
注意
if (!$variable)并且if ($variable !== null)比它们各自的功能执行得更好,但在生成通知时却没有,因此,需要设置 $variable。不要将通知抑制为微优化,因为这会使您的代码更难调试,甚至抑制通知会导致性能损失。
合并运算符
如果您正在检查一个变量以便为它分配一个值,那么您应该使用??,?:而不是if语句。
??
??不等于 null 时赋值。
$variable = $a ?? $b是相同的:
if (isset($a))
$variable = $a;
else
$variable = $b;
?:
?:当 not == 为 false 时赋值。
$variable = $a ?: $b是相同的:
if ($a)
$variable = $a;
else
$variable = $b;
但请记住,当 $a 未设置时会生成通知。如果 $a 可能没有设置,你可以$variable = !empty($a) ? $a : $b;改用。