Ievads PHP OOP
Tagad mēs pievērsīsimies OOP izpētei PHP. Apskatīsim piemēru no dzīves, un pēc tam pārnemsim to uz PHP.
Kā piemēru ņemsim automašīnu. Tai ir riteņi, krāsa, virsbūves veids, dzinēja tilpums un tā tālāk. Turklāt, vadītājs var dot tai komandas: braukt, apstāties, griezties pa labi, pa kreisi un tā tālāk.
Var teikt, ka pastāv noteikta klase automašīnu, kurai piemīt kopīgas īpašības (visām ir riteņi un visām var dot komandas).
Konkrēta automašīna, kas stāv ielā - ir šīs klases pārstāvis, vai, citiem vārdiem sakot, objekts no šīs klases. Visiem šīs klases objektiem ir īpašības: riteņu skaits, krāsa, virsbūves veids un metodes: braukt, apstāties, griezties pa labi, pa kreisi.
Citiem vārdiem, pati klase - ir rasējums, pēc kura rūpnīcā tiek ražotas automašīnas. Objekts ir pati mašīna, kas izveidota pēc šiem rasējumiem.
PHP klasē tiek izveidota, izmantojot atslēgvārdu
class, pēc kura seko šīs klases nosaukums.
Izveidosim klasi Car:
<?php
class Car
{
// šeit kods, tas ir, PHP rasējums automašīnai
}
?>
Norādīsim tagad mūsu rasējumā, ka jebkura automašīna, kas izveidota pēc šī rasējuma, būs ar īpašību krāsai un īpašību degvielas daudzumam.
Lai to izdarītu, klases iekšpusē rakstām īpašību
$color un īpašību $fuel:
<?php
class Car
{
// Definēsim īpašības (būtībā klases mainīgie):
public $color; // automašīnas krāsa
public $fuel; // degvielas daudzums
}
?>
Tagad izveidosim mūsu klases metodes.
PHP metodes, līdzīgi parastajām funkcijām, tiek deklarētas
ar atslēgvārda function palīdzību,
pirms kura raksta atslēgvārdu
public.
Kā jau minēts iepriekš, mūsu automašīna var braukt, var griezties, var apstāties. Izveidosim atbilstošas metodes mūsu klasē:
<?php
class Car
{
public $color; // automašīnas krāsa
public $fuel; // degvielas daudzums
// Komanda braukt:
public function go()
{
// kāds PHP kods
}
// Komanda griezties:
public function turn()
{
// kāds PHP kods
}
// Komanda apstāties:
public function stop()
{
// kāds PHP kods
}
}
?>
Mēs ar jums izveidojām mūsu automašīnas rasējumu. Tagad jādodas uz rūpnīcu un jāizveido šīs klases objekts (tas ir, konkrēta automašīna).
PHP tas tiek darīts, izmantojot atslēgvārdu
new, pēc kura raksta klases nosaukums:
<?php
new Car;
?>
Tomēr, ja vienkārši izveidot klases objektu - tas neko neizdosies (tas ir tas pats, ka, piemēram, deklarēt masīvu un nekur to neierakstīt). Mums ir nepieciešams mainīgais, lai glabātu šo objektu.
Lai šis mainīgais saucas $myCar
- ierakstīsim tajā mūsu izveidoto objektu:
<?php
$myCar = new Car;
?>
Pēc automašīnas izveides var piekļūt
tās īpašībām. Piekļuve tām notiek
caur bultiņu ->. Iestatīsim
mūsu objekta īpašības:
<?php
$myCar = new Car; // liekam rūpnīcai izveidot automašīnu
// Iestatām objekta īpašības:
$myCar->color = 'red'; // krāsojam sarkanā krāsā
$myCar->fuel = 50; // uzpildām degvielu
?>
Viss, mūsu automašīna ir izveidota, nokrāsota un uzpildīta. Tagad mēs varam dot tai komandas, izmantojot šīs automašīnas metodes.
Piekļuve metodēm arī notiek caur bultiņu, bet, atšķirībā no īpašībām, pēc metodes nosaukuma seko apaļās iekavas. Pakomandēsim mūsu objektu:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>