PHP-də OOP-ə Giriş
Indi biz PHP-də OOP-ni oxumaqla mesgul olacagıq. Gelin heyatdan bir misal goturub sonra onu PHP-ə kocurək.
Misal kimi bir avtomobil goturək. Onun tekerleri, rengi, kuzov novu, motor hecmi ve s. var. Bundan elave, surucu ona emrler vera biler: hereket et, dayan, saga don, sola don ve s.
Demek olar ki, umumi xususiyyetlere malik (hamının tekeri var ve hamına emrler vermek mumkundur) avtomobillerin bir klass-ı movcuddur.
Kucde duran konkret avtomobil - bu klassın nümuməndəsi və ya başqa sozlə, bu klassın obyekti-dir. Bu klassın butun obyektlerinin xususiyyetleri var: tekerlerin sayı, reng, kuzov novu ve metodlar: hereket et, dayan, saga don, sola don.
Başqa sozle, klassın ozu - bu zavodda avtomobil istehsal etmek ucun istifade olunan sexdir. Obyekt ise - bu sex əsasında hazırlanmış maşının ozudur.
PHP-də klass class açar sozu ile
yaradılır, onun ardınca bu klassın adı gelir.
Gelin Car klassını yaradaq:
<?php
class Car
{
// burada kod, yəni PHP sexi avtomobili
}
?>
Indi oz seximizde teyin edek ki, bu sex əsasında yaradılmış her hansı bir avtomobilin reng ucun bir xususiyyeti ve yanacaq miqdarı ucun bir xususiyyeti olacaq.
Bunun ucün klassın daxilinde $color
xususiyyetini ve $fuel xususiyyetini yazaq:
<?php
class Car
{
// Xususiyyetleri teyin edek (esasen klass deyişenleri):
public $color; // avtomobilin rengi
public $fuel; // yanacaq miqdarı
}
?>
Gelin indi klassımızın metodlarını edək.
PHP-də metodlar, adi funksiyalar kimi,
function açar sozu ile elan edilir,
onun qabagında isə public açar sozu yazılır.
Yuxarıda qeyd edildiyi kimi, bizim avtomobilimiz hereket ede biler, done biler, dayana biler. Klassımızda uygun metodları edək:
<?php
class Car
{
public $color; // avtomobilin rengi
public $fuel; // yanacaq miqdarı
// Hereket et emri:
public function go()
{
// bir nov PHP kodu
}
// Don emri:
public function turn()
{
// bir nov PHP kodu
}
// Dayan emri:
public function stop()
{
// bir nov PHP kodu
}
}
?>
Biz sizinle oz avtomobilimizin sexini hazırladıq. Indi zavoda getmek ve bu klassın obyektini (yəni konkret avtomobili) yaratmaq lazımdır.
PHP-də bu, new açar sozu ile edilir,
onun ardınca klassın adı yazılır:
<?php
new Car;
?>
Lakin, sadəcə klass obyektini yaratmaq - hec nəye getirməz (bu, məsələn, massivi elan etmek ve onu heç yerə yazmamaq kimidir). Bizə bu obyekti saxlamaq ucun bir deyişen lazımdır.
Qoy bu deyişenin adı $myCar olsun -
icine yaratdıgımız obyekti yazaq:
<?php
$myCar = new Car;
?>
Avtomobil yaradıldıqdan sonra onun xususiyyetlerine
muraciet etmek olar. Onlara muraciet ox ->
vasitesi ile baş verir. Gelin obyektimizin xususiyyetlerini
teyin edək:
<?php
$myCar = new Car; // zavoda avtomobil hazırlamaq emri veririk
// Obyektin xususiyyetlerini teyin edirik:
$myCar->color = 'qırmızı'; // qırmızı rengə boyayırıq
$myCar->fuel = 50; // yanacaq doldururuq
?>
Hamısı, avtomobilimiz yaradıldı, boyandı ve yanacaqla temin edildi. Indi biz bu avtomobilin metodları vasitesi ile ona emrler vere bilerik.
Metodlara muraciet de o ox vasitesi ile baş verir, lakin xususiyyetden ferqli olaraq, metodun adından sonra morterizeler yazılır. Gelin obyektimize emr edək:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>