Обектно-ориентирани възможности на PHP
| Информационни технологии | 2010-11-18 | 173 сваляния |
Обектно-ориентирани възможности на PHP.
Класове и обекти.Наследяване и полиморфизъм
-
Обща характеристика
Обектно-ориентираният модел на PHP преди версия 5 беше на твърде примитивно ниво. PHP5, черпейки вдъхновение главно от модела на JAVA, доведе нещата до ниво, близко до това на другите ООП езици. Технологична концепция на PHP обаче не позволява максималното възползване от възможностите на ООП. Така например за PHP e чужда идеята за инстанцира-не на обект, оставащ достъпен за всички динамични страници по време на цялата сесия.
Самите автори на езика посочват, че инстанцирането на класове в PHP е няколко пъти по-бавно от това в JAVA, а извикването на PHP функция е с 10-12% по-бързо от извикването на PHP метод. Затова писане-то на обектно-ориентиран код отслабва най-голямото предимство на PHP бързодействието. По тази причина PHP програмистът има по-голям стимул да пише процедурен код, а това е крайно неподходящ подход при разработването на големи и сложни проекти.
-
Класове и обекти
Декларир. и инстанцирането на класове в PHP следва схемата, позната във вс. ООП ез.:
margin-bottom: 0in; text-align: left"> private $name;
protected $specialities = array();
public $faculty;
function getName(){
return $this->name;
}
protected function addSpeciality($spec){
$this->specialities[] = $spec;
}
}
В по-старите версии на PHP полета на класа се декларираха с ключовата дума var. С цел съвместимост тя се поддържа и от PHP5, но употребата й се счита заморално остаряла. При декларирането на полета задължително се използва един от модификаторите public, protected или private. Същите модификатори се използват и при декларирането на методи, но там е до-пустимо public да се пропусне, тъй като той се подразбира.
Инстанцирането на класа става с оператор new по познатия начин, но обръщението към полета и методи не използва точкова нотация, а е с малко по-специфичен синтаксис:
$peter = new Student();
$peter->addSpeciality('Информатика');
echo('Име на студента: '.$peter->getName());
Извикването на new създава инстанция на класа, като заделя автоматично необходимата памет, след което извиква конструктора на класа, ако има такъв.
Конструктори в PHP могат да се дефинират по 2 начина: като метод с име, съвпадащо с това на класа, или с използване на името __construct(). Вторият начин, въведен от PHP5, е по-модерното решение:
function __construct($n){
$this->name = $n;
}
Тагове от реферата: ектно, едяване, ориентирани, възможност











