Въведение в ООП в PHP
Сега ще се заемем с изучаването на ООП в PHP. Нека разгледаме пример от живота, а след това го пренесем в PHP.
Като пример вземаме автомобил. Той има колела, цвят, вид на купето, обем на двигателя и така нататък. Освен това, шофьорът може да му дава команди: да тръгне, да спре, да завие надясно, наляво и т.н.
Може да се каже, че съществува някакъв клас автомобили, притежаващ общи свойства (всички имат колела и на всички тях може да се дават команди).
Конкретен автомобил, стоящ на улицата - това е представител на този клас, или, с други думи, обект от този клас. Всички обекти от този клас имат свойства: брой колела, цвят, вид на купето и методи: да тръгне, да спре, да завие надясно, наляво.
С други думи самият клас - това е чертеж, по който във фабриката се правят автомобили. Обектът обаче - това е самата кола, направена по тези чертежи.
В PHP клас се създава с помощта на ключовата
дума class, следвана от името
на този клас. Нека направим клас Car:
<?php
class Car
{
// тук код, тоест PHP-чертеж на автомобил
}
?>
Нека сега укажем в нашия чертеж, че всеки автомобил, създаден по този чертеж, ще има свойство за цвят и свойство за количество гориво.
За това вътре в класа пишем свойство
$color и свойство $fuel:
<?php
class Car
{
// Задаваме свойства (всъщност променливи на класа):
public $color; // цвят на автомобила
public $fuel; // количество гориво
}
?>
Нека сега направим методите на нашия клас.
В PHP методите, подобно на обикновените функции, се декларират
с помощта на ключовата дума function,
преди която се пише ключовата
дума public.
Както вече беше споменато по-горе, нашият автомобил може да се движи, може да завива, може да спира. Нека направим съответните методи в нашия клас:
<?php
class Car
{
public $color; // цвят на автомобила
public $fuel; // количество гориво
// Команда да тръгне:
public function go()
{
// някакъв PHP код
}
// Команда да завие:
public function turn()
{
// някакъв PHP код
}
// Команда да спре:
public function stop()
{
// някакъв PHP код
}
}
?>
Ние с вас направихме чертежа на нашия автомобил. Сега трябва да отидем във фабриката и да направим обект от този клас (тоест конкретен автомобил).
В PHP това се прави с помощта на ключовата дума
new, след което се пише името на класа:
<?php
new Car;
?>
Въпреки това, ако просто се създаде обект от класа - това няма да доведе до нищо (това е все едно, че, например, декларираме масив и никъде да не го запишем). Имаме нужда от променлива за съхранение на този обект.
Нека тази променлива се казва $myCar
- нека запишем в нея създадения от нас обект:
<?php
$myCar = new Car;
?>
След създаването на автомобила може да се осъществи достъп
до неговите свойства. Достъпът до тях се осъществява
чрез стреличката ->. Нека установим
свойствата на нашия обект:
<?php
$myCar = new Car; // командуваме на фабриката да направи автомобил
// Установяваме свойствата на обекта:
$myCar->color = 'red'; // боядисваме в червен цвят
$myCar->fuel = 50; // зареждаме с гориво
?>
Всичко, нашият автомобил е създаден, боядисан и зареден с гориво. Сега можем да му даваме команди чрез методите на този автомобил.
Достъпът до методите също се осъществява чрез стреличката, но, за разлика от свойството, след името на метода следва да се пишат кръгли скоби. Нека даваме команди на нашия обект:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>