我有这样一段代码:
public function setValue($flag) {
$this->value = isset($flag) ? (bool) $flag : null;
}
我假设$flag可以表示null、false或true。(我做类型转换的原因是我只关心类型。)
编辑:这是我的目标:
- 如果$flag为空,则$this->value为空,
- 如果(bool)$flag为false,则$this->value为false,
- 如果(bool)$flag为真,则$this->value为真。
这是我的代码所说的。我想知道,我提交的代码是实现我目标的好方法,还是有更好(更简单、更优雅)的方法?
编辑
我只是读了你的编辑,如果你的代码是工作的,那么继续做你已经做的方式,因为这种方式是方便和整洁的。唯一的问题是我会先检查isset
。
$this->value = null;
if(isset($flag)) {
setValue($flag);
}
public function setValue($flag) {
$this->value = (bool) $flag
}
如果值为NULL
,则isset
将返回false
。您还应该检查is_null