これに近い質問がたくさんあることを私は知っています。ただし、単純な質問に対する答えを見つけることができませんでした (コンストラクターから値を返すことについて質問しているのではなく、コンストラクターが何を返す必要があるかを理解していると思います)。
returnwithin の使用を避ける理由はあります__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 $thisreturn