#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューターPHP では、クラス名とメソッド名が同じであっても構いませんが、メソッド名とクラス名が同じで、「__construct」がない場合は、そのメソッドがコンストラクタとみなされます。 PHP コンストラクターはクラス内の特別な関数であり、new 演算子を使用してクラスのインスタンスを作成すると、コンストラクターが自動的に呼び出されます。
Constructor
__construct ( mixed ...$values = "" ) : voidPHP では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、新しいオブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。
注: コンストラクターがサブクラスで定義されている場合、その親クラスのコンストラクターは暗黙的に呼び出されません。親クラスのコンストラクターを実行するには、子クラスのコンストラクターでparent::__construct()を呼び出す必要があります。サブクラスでコンストラクターが定義されていない場合、通常のクラス メソッドと同様に親クラスから継承されます (プライベートとして定義されていない場合)。例 #1 継承内のコンストラクター
<?php class BaseClass { function __construct() { print "In BaseClass constructor\n"; } } class SubClass extends BaseClass { function __construct() { parent::__construct(); print "In SubClass constructor\n"; } } class OtherSubClass extends BaseClass { // 继承 BaseClass 的构造函数 } // In BaseClass constructor $obj = new BaseClass(); // In BaseClass constructor // In SubClass constructor $obj = new SubClass(); // In BaseClass constructor $obj = new OtherSubClass(); ?>他のメソッドとは異なり、__construct() が親クラス __construct() とは異なるパラメーターを持つメソッドによってオーバーライドされる場合、PHP は生成しません。 E_STRICT エラー メッセージ。 PHP 5.3.3 以降、ネームスペースでは、クラス名と同じ名前のメソッドはコンストラクターとして使用されなくなりました。名前空間にないクラスは影響を受けません。コンストラクターは、対応するオブジェクトがインスタンス化されるときに自動的に呼び出される通常のメソッドです。したがって、必須のパラメーター、タイプを持つパラメーター、またはデフォルト値を持つパラメーターをいくつでも定義できます。コンストラクターのパラメーターは、クラス名の後の括弧内に置かれます。 例 2 コンストラクター パラメーターの使用
<?php class Point { protected int $x; protected int $y; public function __construct(int $x, int $y = 0) { $this->x = $x; $this->y = $y; } } // 两个参数都传入 $p1 = new Point(4, 5); // 仅传入必填的参数。 $y 会默认取值 0。 $p2 = new Point(4); // 使用命名参数(PHP 8.0 起): $p3 = new Point(y: 5, x: 4); ?>クラスにコンストラクターがなく、コンストラクターのパラメーターが必要ない場合は、括弧を省略できます。 推奨学習: 「
PHP ビデオ チュートリアル 」
以上がPHPのクラス名と同じメソッドは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。