現在、PHP はコンストラクターに対して 2 つの命名規則をサポートしています。PHP 4 がサポートする Java スタイルのコンストラクター:
class A
{
public function A()
{
echo "I'm a constructor for class A!";
}
}
PHP 5 は、Java スタイルのコンストラクターと「マジック メソッド」構文の両方をサポートしています。
class A
{
public function __construct()
{
echo "I'm a constructor for class A!";
}
}
Java スタイルの構文は廃止される予定であり、その一部の機能は最新の PHP では機能しません。しかし、これには興味深い特性があり、「マジック メソッド」構文に類似したものはありません。派生クラスfoobar
に明示的なコンストラクターがない場合foobar
、基本クラスのメソッドがfoobar
コンストラクターになります。
class A
{
public function A()
{
echo "I'm a constructor for class A!";
}
public function B()
{
echo "I'm a constructor for class B!";
}
}
class B extends A
{
}
Java スタイルのコンストラクターは非推奨になっているため、set-the-constructor-in-the-parent 言語機能はどうなりますか?