0

我有这样一段代码:

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

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

编辑:这是我的目标:

  • 如果 $flag 为空,则 $this->value 为空,
  • 如果 (bool)$flag 为假,则 $this->value 为假,
  • 如果 (bool)$flag 为真,则 $this->value 为真。

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

4

2 回答 2

1

编辑

我刚刚阅读了您的编辑,如果您的代码正在运行,那么请继续按照您已经在执行的方式进行操作,因为这种方式既方便又整洁。唯一的事情是我会先检查isset

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

public function setValue($flag) {
  $this->value = (bool) $flag
}
于 2013-03-23T18:56:09.617 回答
0

如果值为,isset将返回。您还应该检查falseNULLis_null

于 2013-03-23T18:54:28.620 回答