新しいオブジェクトモデル

PHP 5 では、新しいオブジェクトモデルが採用されています。 PHP におけるオブジェクトの処理は完全に書き直され、性能と機能が向上しています。 以前のバージョンでは、(integer や string といった) 通常の型と同じようにオブジェクトを扱っていました。 この方式の欠点は、変数にオブジェクトを代入したり メソッドのパラメータとしてオブジェクトを渡した場合に オブジェクト全体がコピーされてしまうということでした。 新しい方式では、オブジェクトを指すハンドルを用いてオブジェクトを管理します。 値そのものを管理するのではなくなります (ハンドルというのは、 要はそのオブジェクトの ID のことです)。

Many PHP programmers aren't even aware of the copying quirks of the old object model and, therefore, the majority of PHP applications will work out of the box, or with very few modifications.

新しいオブジェクトモデルについては 言語リファレンス を参照ください。

PHP 5 では、クラス名と同じ名前の関数がそのクラス内で定義されている場合にのみ それがコンストラクタとしてコールされます。 PHP 4 では、同じクラスだけでなく親クラスで定義されている場合にもコールされていました。

PHP 4 との互換性については、 zend.ze1_compatibility_mode ディレクティブも参照ください。