PHP: 在三元中是否使用isset?
PHP: use isset in ternary or not?
说我有这个功能:
function foo($var = null) {
return $var ? 'good' : 'bad';
// return (isset($var) && !empty($var)) ? 'good' : 'bad';
}
此函数按预期工作,它应该是语法正确的,因为 $var
默认值始终设置,是否有任何理由使用 isset()
和 empty
PHP 功能?
P.S:
当 $var
不是 null
false
或 ''
时,good
是可以接受的
如评论中所述,通过您的 if
测试,php 会进行类型推断。
因此 $var
中的某些值会回显 bad
,即使它们不为空。
要获得更准确的答案,您应该检查 PHP type comparison tables:您有 if($x)
、isset()
、is_null()
和 empty()
之间差异的示例取决于您测试的变量的值。
说我有这个功能:
function foo($var = null) {
return $var ? 'good' : 'bad';
// return (isset($var) && !empty($var)) ? 'good' : 'bad';
}
此函数按预期工作,它应该是语法正确的,因为 $var
默认值始终设置,是否有任何理由使用 isset()
和 empty
PHP 功能?
P.S:
当 $var
不是 null
false
或 ''
good
是可以接受的
如评论中所述,通过您的 if
测试,php 会进行类型推断。
因此 $var
中的某些值会回显 bad
,即使它们不为空。
要获得更准确的答案,您应该检查 PHP type comparison tables:您有 if($x)
、isset()
、is_null()
和 empty()
之间差异的示例取决于您测试的变量的值。