如何检查三个状态(null,false,true)值?

时间:2013-03-23 18:51:00

标签: php isset

我有这样一段代码:

public function setValue($flag) {
  $this->value = isset($flag) ? (bool) $flag : null;
}

我假设,$ flag可以表示null,false或true。 (我做类型转换的原因是我只关心类型。)

编辑: 这是我的目标:

  • 如果$ flag为null,则$ this-> value为null,
  • if(bool)$ flag为false,则$ this-> value为false,
  • if(bool)$ flag为true,则$ this-> value为true。

这是我的代码所说的。我想知道,我提交的代码是实现目标的好方法,还是可能有更好(更简单,更优雅)的代码?

2 个答案:

答案 0 :(得分:1)

修改

我刚读过您的编辑内容,如果您的代码正常工作,那么请按照您已经这样做的方式继续进行,因为这样方便又整洁。唯一的问题是我会先检查isset

$this->value = null;
if(isset($flag)) {
    setValue($flag);
}

public function setValue($flag) {
  $this->value = (bool) $flag
}

答案 1 :(得分:0)

如果值为issetfalse将返回NULL。您还应该is_null

进行检查