PHP5マニュアル によると、__construct()
はPHP5でSameAsClassName()
コンストラクターの代わりとして導入され、PHP7以降、古いスタイルは非推奨としてマークされているため、将来のバージョンでは、SameAsClassName()
は許可されなくなります。
私はこの決定の根拠について疑問に思っています。マニュアルには、その変更の理由は記載されていません。 __construct()とSameAsClassName()を使用する利点は何ですか?
補足:約2000のクラスがあるコードベースでは、この変更により、すべてのクラスの名前を手動で__constructに変更する必要が生じます。
この変更は、特別な機能と通常の機能を区別するためのより大きなスキームの一部であった可能性があります。リンクした同じページで、特別な関数__destruct
以前は類似物がありませんでした。
クラスと同じ名前の関数のイディオムは、コンストラクターがJava/C++/C#の外で過度に広がっていないことです。
これらの理由を組み合わせれば、言語のそのメジャーリリースでのクラスシステムのオーバーホールを保証するのに十分だった可能性があります。
名前はおそらく二重下線__
は、Python、C、C++などの言語での実装または言語の詳細に一般的に使用されます。
決定的な回答が必要な場合は、リストのアーカイブを調べて、それがプライベートでも直接でも議論されなかったことを願ってください。