これに近い質問がたくさんあることを私は知っています。ただし、単純な質問に対する答えを見つけることができませんでした (コンストラクターから値を返すことについて質問しているのではなく、コンストラクターが何を返す必要があるかを理解していると思います)。
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;
}
}
上記の 1 つがテストされ、(私の開発環境内で) 期待どおりに動作し、親$tristate
変数 50/50 を NULL/TRUE に設定しますが、将来的には動作し、コンストラクターの途中でvoid return
.
頭に浮かんだもう1つのことは、通常はvoidreturn $this
であるプレーンの代わりに使用する必要があるということですが、PHPはとにかくインスタンスを返すようです。答えは、両方とプレーンが同じくらい良いreturn
ということかもしれません。return $this
return