说我有这个功能:
function foo($var = null) {
return $var ? 'good' : 'bad';
// return (isset($var) && !empty($var)) ? 'good' : 'bad';
}
此函数按预期工作,它应该是合成的,因为$var
默认值总是设置,有没有理由使用isset()
和empty
PHP函数?
P.S:
good
不是$var
null
或false
''
是可以接受的
答案 0 :(得分:4)
正如评论中所述,通过if
测试,php会进行类型推断。
因此$var
中的值会回显bad
,即使它们不为空。
要获得更准确的答案,您应该检查PHP type comparison tables:您有if($x)
,isset()
,is_null()
和empty()
之间差异的例子,具体取决于您测试的变量的值。