Sunteți pe pagina 1din 4

CLASE SI OBIECTE

1. Creare clasa:

class nume_clasa {
$proprietate;
function metoda(){
// cod metoda
}
}

2. Atribute pentru proprietati si metode

 public – valabil in tot scriptul


 private – valabil doar in interiorul clasei
 protected – valabil doar in acea clasa si subclasele extinse din ea

class nume_clasa {
public $proprietate;
public function metoda(){
// cod metoda
}
}

3. $this

class nume_clasa {
public $proprietate = ”exemplu”;
public function metoda(){
echo $this->proprietate; // va afisa „exemplu”
}
echo $this->metoda();// va afisa inca o data „exemplu”
}

4. Utilizarea claselor

Dupa ce o clasa e creata, pentru a putea fi utilizata trebuie creata o instanta de obiect a clasei. Aceasta instanta se
declara in scriptul PHP, cu formula:
$nume_obiect = new Nume_Clasa();
- "nume_obiect" este numele obiectului prin care pot fi utilizate proprietatile si metodele acelei clase.

class nume_clasa {
public $proprietate = ”exemplu”;
public function metoda($variabila){
echo $variabila;
}
}
$obiect = new nume_clasa();
echo $obiect->proprietate; //va afisa „exemplu”
echo $obiect->metoda(”exemplu2”); //va afisa „exemplu2”

5. Metoda construct

Metoda constructor e un tip special de functie din interiorul Clasei. Se declara cu numele __construct (doua
caractere "_" in fata). Aceasta metoda este mereu "public" chiar daca nu se mentioneaza special atributul "public".
Diferenta fata de celelalte functii este aceea ca Metoda Constructor e apelata automat cand se creaza o instanta la
clasa respectiva, codul din ea se executa in momentul cand e creat obiectul (cu new).

class Clasa_mea {
function __construct($nume){
echo "CONSTRUCTORUL AFISEAZA:".$nume."<br>";
}

function __destruct(){
echo "<br>DECONSTRUCTORUL AFISEAZA: LA REVEDERE";
}
public $proprietate = "exemplu";
public function metoda($variabila){
echo $variabila;
}
}
$obiect = new Clasa_mea('GUTA MARIUS-DANUT'); // va afisa "CONSTRUCTORUL
AFISEAZA:GUTA MARIUS-DANUT"

6. Metoda destruct

O alta metoda magica este metoda destructor, ea este apelata cand obiectul este distrus(la incheierea executiei
scriptului sau din script cu functia unset). Metoda este asemanatoare ca nume cu metoda constructor deoarece
numele metodei trebuie sa fie __destruct(cu doua caractere _).In exemplul urmator vom crea doua obiecte, unul il
vom distruge cu unset iar altul il vom lasa sa fie distrus cand scriptul isi incheie executia.

class Clasa_mea {
function __construct($nume){
echo "CONSTRUCTORUL AFISEAZA:".$nume."<br>";
}

function __destruct(){
echo "<br>DECONSTRUCTORUL AFISEAZA: LA REVEDERE";
}
public $proprietate = "exemplu";
public function metoda($variabila){
echo $variabila;
}
}
$obiect = new Clasa_mea('GUTA MARIUS-DANUT'); // va afisa "CONSTRUCTORUL
AFISEAZA:GUTA MARIUS-DANUT"
echo $obiect->proprietate;
echo $obiect->metoda('<br>exemplu2');
unset ($obiect); // va afisa "DECONSTRUCTORUL AFISEAZA: LA REVEDERE"

7. Constante

Pe langa proprietati (variabile) si metode (functii), in corpul clasei pot fi definite si constante, prin cuvantul const.
Sintaxa generala este:
const NUME_CONSTANTA;
- Diferenta principala dintre constante si proprietati e faptul ca valoarea constantei ramane aceeasi, nu mai poate fi
modificata.
- La constante nu se foloseste atribut (public, private, protected), doar cuvantul const, ele sunt recunoscute ca
publice.
- Constantele se acceseaza prin numele clasei si operatorul doua-puncte (::) (atat in interiorul clasei cat si in script
unde e creata instanta), cu formula:
Nume_Clasa::NUME_CONSTANTA
Daca se incearca modificarea valorii constantei, in clasa sau in afara ei (Clasa::CONSTANTA=alta_valoare;), va
genera eroare.
- In interiorul clasei, constantele pot fi accesate si prin cuvantul special self in loc de numele clasei:
self::CONSTANTA
- In afara clasei, constantele pot fi accesate si prin intermediul instantei de obiect, dar dupa crearea ei. In exemplu
de mai sus, dupa declararea instantei se poate folosi si $nume_obiect::nume_constanta;

Recapitulam:
const nume_constanta; // creeaza constanta
self::nume_constanta; // utilizarea constantei in interiorul clasei
Nume_clasa::nume_constanta; //utilizarea constantei in afara clasei
nume_obiect::nume_constanta; //utilizarea constantei in afara clasei

8. Proprietati si metode statice

Pe langa atributele: "public", "private" si "protected"; prin care se defineste domeniul de acces al proprietatilor si
metodelor; acestea pot fi create si ca statice, astfel, vor apartine exclusiv clasei, si nu pot fi apelate prin instanta de
obiect a clasei, ci direct prin ea, cu operatorul doua-puncte (::).
Pentru a defini o proprietate sau metoda ca statica, se foloseste cuvantul static inaintea atributului, cand sunt create
aceste elemente. Sintaxa generala este:
static atribut $proprietate
static atribut function Metoda()
- atribut este unul din cuvintele: public, private sau protected; care stabilesc domeniul de existenta.
Aceste elemente statice nu pot fi apelate prin instanta de obiect deoarece nu apartin ei, ele apartin clasei si pot fi
apelate cu formula:
NumeClasa::$proprietate
NumeClasa::metoda()
- Observati ca la proprietate, cand e statica trebuie adaugat si caracterul $ (fara caracterul '$', sintaxa
"NumeClasa::proprietate" este confundata cu cea pt. constante).

• In interiorul clasei, elementele statice pot fi apelate si prin cuvantul special self in loc de numele clasei:
self::$proprietate sau self::Metoda()

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