我知道有很多与此相关的问题。但是,我没有设法找到简单问题的答案(我不是在询问从构造函数返回值,我认为我理解构造函数应该返回什么)。
有什么理由避免使用return
within__construct
吗?
或者这种完全可以接受的编码风格在未来不会因为以下原因而中断return
:
class A {
protected $tristate = null;
function __construct() {
// Constructor returns instance of class automatically
// no need to `return $this`
}
protected function Logic() {
return rand(0, 1) === 1;
}
}
class B extends A {
function __construct() {
parent::__construct();
if ($this->Logic()) return;
$this->tristate = true;
}
}
上面的一个经过测试,它按预期工作(在我的开发环境中),它将父$tristate
变量 50/50 设置为 NULL/TRUE,但它会在将来工作,并且在构造函数的中间返回时是否会出现任何问题void return
。
想到的另一件事是我是否应该使用通常是无效return $this
的 plainreturn
但 PHP 似乎无论如何都会返回实例,答案很可能是两者return $this
和 plainreturn
一样好。