0

オブジェクト指向 PHP の実験を始めたばかりですが、あまりよく理解していない基本原則が 1 つあります。

メソッドを作成するとき、それが特にそのクラスのコンストラクターである__construct()のに、なぜそれを にしたいのでしょうか? publicクラス外でコンストラクターを呼び出すのはいつですか?

私には、保護されたコンストラクターを使用することは良い習慣のようですよね?

これが基本的なオブジェクト指向のものであることは知っていますが、特にコンストラクターに関する直接的な情報は見つかりません。

4

2 に答える 2

5

( __construct"__constructor" ではない) メソッドは、実行するnew MyClass()とき、つまりクラスをインスタンス化するときに呼び出されるメソッドです。クラスをそれ自体からインスタンス化するだけの場合を除き、コンストラクターは である必要があります。public後者の場合、クラスがそれ自体をインスタンス化するために呼び出すことができる他のメソッドが少なくとも 1 つ必要public staticです。そうしないと、そのインスタンスを作成できません。

于 2012-10-13T09:41:47.673 に答える
3

クラスの新しいインスタンスを作成するたびに、コンストラクターが呼び出されます。コンストラクターがパブリックでない場合、他のコードはそのクラスのインスタンスを作成できません。

したがって、クラスのインスタンスを作成する場合は、コンストラクターをパブリックにします。

コンストラクターは常に、それが定義されているクラスの一部にすぎません。 「それが特にそのクラスのコンストラクターである場合」の意味がわかりません。


明確にするために:

コンストラクターを呼び出す唯一の方法は、new Class(). それを呼び出す他の方法はありません。__construct魔法のメソッドであり、魔法のメソッドを明示的に呼び出す方法はありません。

于 2012-10-13T09:40:12.280 に答える