PHP5でクラス名と同名のメソッドを定義してはいけない

PHP5では、クラスのコンストラクターメソッドは__construct()という名前で統一されています。一方、PHP4では、クラス名と同じ名前のメソッドがある場合はそれをコンストラクターメソッドとみなす、という動作でした。

PHP5では、__construct()がある場合はそれをコンストラクターメソッドとみなしますが、__construct()が無くて、クラス名と同名のメソッドがある場合、クラス名と同名のメソッドをコンストラクターメソッドとみなします(PHP4との互換性のため)。

したがって、PHP5では、クラス名と同名のメソッドを定義すべきではありません。コンストラクターにするつもりのないメソッドがコンストラクターになってしまう恐れがあるからです。

PHPマニュアル:コンストラクタとデストラクタ

コメントを残す