Новая объектная модель

В PHP 5 появилась новая объектная модель. Работа с объектами в PHP была полностью переписана, позволяя достигнуть лучшей производительности и предоставляя новые возможности. В предыдущих версиях PHP работа с объектами производилась аналогично примитивным типам (к примеру, integer и string). Недостатком этого метода являлось то, что семантически весь объект копировался при присвоении переменной или передачи её в качестве параметра функции. При новом подходе на объекты ссылаются по дескриптору, а не по значению (дескриптор можно представить себе как идентификатор объекта).

Многие PHP-программисты даже не в курсе хитростей механизма копирования в старой объектной модели, что означает, что большинство из PHP-приложений будут работать либо вовсе без всяких изменений, либо с совсем небольшими изменениями.

Новая объектная модель задокументирована в справочнике по языку.

В PHP 5 функция, имеющая такое же имя как и класс, будет вызываться в качестве конструктора, только если она определена в этом же классе. В PHP 4 она также вызывалась при определении в родительском классе.

Обратите внимание также на директиву zend.ze1_compatibility_mode для совместимости с PHP 4.