Sunteți pe pagina 1din 3

Clase si obiecte in PHP

O clasa este o colectie de variabile si de functii care utilizeaza aceste variabile. O clasa
se defineste utilizand urmatoarea sintaxa:
class Cart
A var $items; // Tablou asociativ de articole
// Adauga $num articole de tipul $artnr function add_item $artnr! $num"
A
$t#is$%itemsa $artnri &' $num;
(
// )limina $num articole de tipul $artnr function remove_item $artnr! $num"
A if $t#is$%itemsa $artnri % $num"
A
$t#is$%itemsa $artnri $' $num; return true;
( else
A return false;
(
(
(Constructia de mai sus defineste o clasa Cart formata dintr$un tablou asociativ de
articole si doua functii pentru a adauga si a elimina articole din tablou.
*ota: in +,+- sunt permisi doar initializatori constanti pentru variabile var. +entru
initializatorii neconstanti trebuie folositi constructori.
/. Acest exemplu nu va functiona +,+- ./ class TestClass
A var $toda/s_date ' date 01$m$d0"; var $name ' $a_name;
(
/. Asa trebuie procedat ./ class TestClass
A var $toda/s_date; var $name;
function Cart"
A
$t#is$%toda/s_date ' date 01$m$d";
$t#is$%name ' $23O4A3(a 5a_name5i;
(
(Clasele sunt tipuri. +entru a crea o variabila de tipul dorit se foloseste operatorul
ne6.
$cart ' ne6 Cart;
$cart$%add_item 0780! 7";Acest cod creaza un obiect $cart din clasa Cart. 9unctia
add_item" a acestui obiect este apelata pentru a adauga un articol cu numarul 78 in
tabloul $cart$%items.
Clasele pot fi extensii ale altor clase. Aceasta notiune se numeste mostenire. Clasa
extinsa sau derivata poseda toate variabilele si functiile clasei de baza alaturi de
variabilele si functiile definite in extensie. Acest lucrul se realizeaza utilizand cuvantul
c#eie extends. :ostenirea multipla nu este acceptata.
class *amed_Cart extends Cart
A var $o6ner;
function set_o6ner $an_o6ner"
A
$t#is$%o6ner ' $an_o6ner;
(
(Codul de mai sus defineste o clasa *amed_Cart care are toate variabilele si functiile
din Cart plus o variabila suplimentara $o6ner si o functie suplimentara set_o6ner".
+uteti crea un obiect $ncart cu operatorul ne6 si apoi puteti seta proprietatile
obiectului.
)xemplu:
$ncart ' ne6 *amed_Cart; // Creaza un nou obiect
$ncart$%set_o6ner 0;ris0"; // (eteaza proprietatea o6ner print $ncart$%o6ner;
$ncart$%add_item 0780! 7"; // :ostenire de la clasa de baza<n functiile unei clase
variabila $t#is inseamna obiectul curent. +entru a accesa o variabila sau functie a
obiectului curent! numita $proba! trebuie sa utilizam constructia $t#is$%proba. Atat in
interiorul cat si in afara obiectului! nu este necesar semnul 5$5 in fata unei
0proprietati0" cand accesati o proprietate a acestuia.
)xemplu:
$ncart$%o6ner ' 0C#ris0; // 9ara $ in fata proprietatii $o6ner
$ncart$%$o6ner;
// )ste invalid deoarece $ncart$%$o6ner ' $ncart$%00
$m/_var ' 5o6ner5;
$ncart$%$m/_var ' 0C#ris0;
// )ste corect deoarece $ncart$%$m/_var ' $ncart$%o6nerConstructorii sunt functiile
dintr$o clasa care au acelasi nume cu clasa. )i sunt automat apelati cand creati o noua
instanta a clasei.
class Auto_Cart extends Cart
A function Auto_Cart"
A
$t#is$%add_item 0780! 7";
(
(Acest cod defineste o clasa Auto_Cart care extinde clasa Cart plus un constructor
care initializeaza obiectul cu un articol! avand numarul 78 de fiecare data cand un nou
obiect de tipul Auto_Cart este creat cu operatorul ne6.
Constructorii pot avea argumente pot fi optionale"! caracteristica care ii face foarte
utili.
class Constructor_Cart extends Cart
A function Constructor_Cart $item ' 0780! $num ' 7"
A
$t#is$%add_item $item! $num";
(
(
$default_cart ' ne6 Constructor_Cart;
$different_cart ' ne6 Constructor_Cart 0=80! 7>";

S-ar putea să vă placă și