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() 之间差异的示例取决于您测试的变量的值。