Начиная с PHP 4 объектно-ориентированная модель PHP была полностью переписана в силу того, что полномасштабные крупные проекты в современном мире принято писать на модели ООП в виду его эффективности. В PHP 3 ООП был реализован впервые, с этого момента ядро обновлялось с успехом и к версии PHP 4 движок работал уже намного быстрее, чем предыдущие версии , но было очень мало изменений в плане ООП.
Как ООП работало в PHP 4
В PHP 4 , несмотря на то, что ООП поддерживался, но он был еще очень сыроват для данного языка, главной особенностью было прожорливость ресурсов, так как объекты или экземпляры работали как копии, а не как ссылочные типы, как это сделано в Java или в C#, отсутствовала безопасное использование полей и методов.
Приведем пример:
class MyClass{ var $field; function setField($variable) { this ->field = $variable; } function getField() { return this ->field = $variable; } } function setNewName($object, $name) { $object->setField($name); } $object = new MyClass(); $object ->setField("Вася"); setNewName($object, "Маша"); echo getField();//Выведет "Вася"
В данном примере то , что передается в функцию с экземпляром будет работать только внутри функции и не будет связан с внешним его экземпляром, точнее сказать, внутри функции мы работаем с копией данного экземпляра.
Чт�� нового в PHP 5
Так как в PHP5 реализована уже зрелая модель ООП по сравнению с предыдущими версиями, то появились множество обновлений, в частности — видимость, абстрактные и ненаследуемые (final) классы и методы, а также магические методы, интерфейсы, клонирование и контроль типов (typehinting). Теперь PHP работает с объектами как с ссылками, что означает, что каждая переменная хранит в себе ссылку на объект , а не его копию, что является большим преимуществом в плане снижения ресурсоемкости , быстродействия и построения крупных проектов. Об объектах и их особенностях мы еще поговорим в следующих уроках.