PHP-dä OOP-e Giriş
Häzir biz PHP-dä OOP-i öwrenmek bilen meşgullanarys. Durmuşdan bir mysal alyp, soňra ony PHP-e geçireliň.
Mysal hökmünde awtomobili alyň. Onuň täkerleri, reňki, kuzownyň görnüşi, dwigatelyň hejmi we şuňa meňzeş zatlar bar. Mundan başga-da, sürüjü ona buýruk berip bilýär: git, dur, sag tarapa çöz, çep tarapa çöz we ş.m.
Umumy aýratynlyklary (hemmäsiniň täkeri bar we hemmesine buýruk berip bolýar) bolan awtomobilleriň belli bir klassy bar diýip aýdyp bolýar.
Köçede duran konkret awtomobil - bu şu klassyň wekilidir, ýa-da başga sözler bilen, şu klassyň obyekti. Bu klassyň ähli obýektleriniň aýratynlyklary bar: täker sany, reňk, kuzownyň görnüşi we metodlary: git, dur, sag tarapa çöz, çep tarapa çöz.
Başga sözler bilen, klasyň özi - bu zawodda awtomobilleriň ýasalyş çyzgysydyr. Obyekt bolsa, şol çyzgylar boýunça ýasalan maşynyň özüdür.
PHP-dä klas açar söz class bilen döredilýär,
ondan soňra şu klassyň ady gelýär. Geliň
Car klassy ýasalyň:
<?php
class Car
{
// şu ýerde kod, ýagny PHP awtomobil çyzgysy
}
?>
Indi çyzgymyzda, bu çyzgy boýunça döredilen ähli awtomobiliň reňk üçin we ýangyç mukdary üçin aýratynlygy boljakdygyny görkezeliň.
Bunüň üçin klasyň içinde $color aýratynlygyny
we $fuel aýratynlygyny ýazalyň:
<?php
class Car
{
// Aýratynlyklary belleýäris (esasynda klass üýtgeýjileri):
public $color; // awtomobiliň reňki
public $fuel; // ýangyç mukdary
}
?>
Indi biziň klassyň metodlaryny ýasalyň.
PHP-dä metodlar, adaty funksiýalar ýaly,
function açar sözi bilen yglan edilýär,
onyň öňünde public açar sözi ýazylýar.
Ýokarda aýdyşymyz ýaly, biziň awtomobilimiz gidip bilýär, çözüp bilýär, durup bilýär. Klasymyzda degişli metodlary ýasalyň:
<?php
class Car
{
public $color; // awtomobiliň reňki
public $fuel; // ýangyç mukdary
// Git buýrugy:
public function go()
{
// bir PHP kody
}
// Çöz buýrugy:
public function turn()
{
// bir PHP kody
}
// Dur buýrugy:
public function stop()
{
// bir PHP kody
}
}
?>
Biz awtomobilimiziň çyzgysyny ýasadyk. Indi zawoda gitmeli we şu klassyň obýektini (ýagny konkret awtomobili) ýasamaly.
PHP-dä bu new açar sözi bilen edilýär,
ondan soňra klassyň ady ýazylýar:
<?php
new Car;
?>
Emma, eger diňe klassyň obýektini döretseňiz - bu hiç zada getirmez (bu, mysal üçin, massiw yglan etmek we ony hiç ýere ýazmandan tapawutly däldir). Bu obýekti saklamak üçin bize üýtgeýji gerek.
Bu üýtgeýjiniň ady $myCar bolsun
- ýasalan obýekti ona ýazalyň:
<?php
$myCar = new Car;
?>
Awtomobili döretden soň onuň aýratynlyklaryna
ýüz tutup bolýar. Olara ýüz tutmak
okat ýaýy -> arkaly amala aşyrylýar. Geliň
obýekdimiziň aýratynlyklaryny belleýeliň:
<?php
$myCar = new Car; // zawoda awtomobil ýasamagy buýurýarys
// Obyektiň aýratynlyklaryny belleýäris:
$myCar->color = 'red'; // gyzyl reňke boýaýarys
$myCar->fuel = 50; // ýangyç guýýarys
?>
Hemmesi, biziň awtomobilimiz döredildi, boýandy we ýangyç guýuldy. Indi biz bu awtomobile onuň metodlary arkaly buýruk berip bilýäris.
Metodlara ýüz tutmak hem oka ýaý arkaly amala aşyrylýar, ýöne aýratynlyktan tapawutlylykda, metod adyndan soňra ýumry ýazygyň ýazylmagy gerek. Geliň obýektimize buýruk bereliň:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>