【发布时间】:2010-10-18 11:50:01
【问题描述】:
在 PHP 中,empty() 是一个很好的快捷方式,因为它允许您同时检查变量是否已定义且不为空。
当您不希望将“0”(作为字符串)视为空,但仍希望将 false、null、0 和“”视为空时,您会使用什么?
也就是说,我只是想知道您是否有自己的快捷方式:
if (isset($myvariable) && $myvariable != "") ;// do something
if (isset($othervar ) && $othervar != "") ;// do something
if (isset($anothervar) && $anothervar != "") ;// do something
// and so on, and so on
我认为我不能为此定义一个辅助函数,因为该变量可能是未定义的(因此不能作为参数传递)。
【问题讨论】:
-
我想我现在意识到没有办法解决这个问题——至少没有办法可以让这段代码变得更短。
-
找到解决方案:
if (($var ?? 0) != '')。$var ?? 0是isset($var) ? $var : 0的简写。然后!= ''隐式转换为字符串。如果值为 null、false 或数字 0,则为 false,但如果为字符串“0”,则为 true,因为没有强制转换。
标签: php