タイトルには、同じクラスの静的メソッド内からクラスのインスタンスを作成したいと考えています。私はこれまでのところ、次のようなことをすることでできることを理解しました。静的メソッド内からクラスインスタンスを作成
class Foo{
public $val;
public static function bar($val){
$inst = new Foo;
$inst->val = $val;
return $inst;
}
}
これでこれを行うことができます。
$obj = Foo::bar("some variable");
どれが素晴らしいですか。
今質問があります。私が気付いていない簡単なやり方や、同じ結果を達成するための短所はありますか?このようにしてインスタンスを作成することのメリットとデメリットはありますか?
ありがとうございました。
このようにそれを行うためのあなたの理由は何ですか?どうしても '$ obj = new Foo(ある変数);'? –
コンストラクタを使用して、ある時点ですでに作成されているものを作成することは意味がありません。たとえば、現在のプロジェクトでは、Profile :: get()を使用して、(ある時点で)既に「構築済み」のプロファイルを読み込みます。おそらく、私はコンストラクタを誤用しているか、またはこれをオーバーロードの答えとして使用しています。 – daniel