E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Introducere in PHP (24)

VII. Clase si obiecte

29.05.2008
VII. Clase si obiecte

Pe parcursul acestui tutorial, vei putea citi despre capacitatile PHP in legatura cu implementarea obiectelor (atat in PHP 4 cat si in PHP 5) si vei putea urmari diverse exemple si explicatii ce ilustreaza utilizarea lor.

Total vizualizari: 16472 16472 afisari   |   Comentarii  7   |   Rating   |   (13 voturi)   |   Timp necesar: 20 min 20 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  Zend.com  
Autor:  Vikram Vaswani
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 123 4 5 »
comenteaza printeaza

Cuvantul cheie "this"
Daca vrei sa accesezi functiile si variabilele unei clase chiar in cadrul acesteia, atat PHP4, cat si PHP5, iti pun la dispozitie cuvantul cheie $this, care este folosit ca o referinta la instanta curenta. Pentru a vedea cum functioneaza acesta, sa modificam functia mananca() pentru a primi ca parametru un numar de unitati de mancare care sunt adunate la greutatea unui urs:

<?php 
// PHP 5 
// definitia clasei 
class Urs { 
    // definitia proprietatilor 
    public $nume; 
    public $greutate; 
    // definitia  metodelor
    public function mananca($unitati) { 
        echo $this->nume." mananca ".$unitati." unitati de mancare... "; 
        $this->greutate += $unitati; 
    } 
} 
?>

In acest caz, prefixul $this indica faptul ca variabila ce urmeaza a fi modificata a fost definita ca proprietate a clasei. Acest lucru poate fi exprimat ca: "pentru acest obiect, aduna argumentul functiei mananca() la variabila $greutate". In concluzie, cuvantul cheie $this iti ofera o metoda facila de a accesa variabilele si functiile "locale" ale clasei.

Iata un exemplu care ilustreaza functionarea sa:

<?php 
// creeaza instanta 
$pui = new Urs; 
$pui->nume = "Puiul urs"; 
$pui->greutate = 1000; 
// creeaza o alta instanta 
// cu valori independente pentru fiecare proprietate
$frate = new Urs; 
$frate->nume = "Fratele puiului"; 
$frate->greutate = 1000; 
// afiseaza proprietatile 
echo $pui->nume." cantareste ".$pui->greutate." unitati "; 
echo $frate->nume." cantareste ".$frate->greutate." unitati "; 
// apeleaza functia mananca() 
$pui->mananca(100); 
$pui->mananca(50); 
$frate->mananca(11); 
// afiseaza noile valori 
echo $pui->nume." cantareste acum ".$pui->greutate." unitati "; 
echo $frate->nume." cantareste acum ".$frate->greutate." unitati ";
?>

Codul de mai sus va afisa:

Puiul urs cantareste 1000 unitati
Fratele puiului cantareste 1000 unitati
Puiul urs mananca 100 unitati de mancare...
Puiul urs mananca 50 unitati de mancare...
Fratele puiului mananca 11 unitati de mancare...
Puiul urs cantareste acum 1150 unitati
Fratele puiului cantareste acum 1011 unitati

Constructori
In PHP ai posibilitatea de a executa o metoda a unei clase atunci cand este creata o noua instanta a acesteia. Aceasta metoda poarta denumirea de constructor. Pentru a o utiliza, definitia clasei tale in PHP5 trebuie sa contina o functie speciala, __construct().

De exemplu, daca vrei ca toti puii de urs nou-nascuti sa aiba blana maro si cantareasca 100 de unitati, poti folosi codul de mai jos:

<?php 
// PHP 5 
// definitia clasei 
class Urs { 
    // definitia proprietatilor 
    public $nume; 
    public $greutate; 
    public $varsta; 
    public $culoare; 
    // constructor 
    public function __construct() { 
        $this->varsta = 0; 
        $this->greutate = 100; 
        $this->culoare = "maro"; 
    } 
     // definitia metodelor 
} 
?>

In PHP4, constructorul trebuie sa aiba acelasi nume ca si clasa. Iata codul echivalent pentru PHP4:

<?php 
// PHP 4 
// definitia clasei 
class Urs { 
    // definitia proprietatilor 
    var $nume; 
    var $greutate; 
    var $varsta; 
    var $culoare; 
    // constructor 
    function Urs() { 
        $this->varsta = 0; 
        $this->greutate = 100; 
        $this->culoare = "maro"; 
    } 
    // definitia metodelor 
} 
?>

Sa cream o noua instanta a clasei:

<?php 
// creeaza instanta 
$pui = new Urs; 
$pui->nume = "Puiul urs"; 
echo $pui->nume." are culoarea ".$pui->culoare." si 
cantareste ".$pui->greutate." unitati la nastere"; 
?>

Constructorul va initializa in mod automat proprietatile culoare si greutate pentru fiecare obiect de tipul Urs care este creat. In consecinta, scriptul de mai sus la afisa:

Puiul urs are culoarea maro si cantareste 100 unitati la nastere

Pagina:
« 123 4 5 »
comenteaza printeaza
Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(13 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (7) spune-ti parerea
e-learn , Joi, 25 Iunie 2009
#7

Re: miha
Apreciem eforturile tale de a "sparge" site-ul, dar aceeasi smecherie nu va functiona de doua ori. Asa ca ori inventezi ceva nou, ori ar trebui sa renunti la glume si sa lasi loc celor care chiar isi doresc sa invete ceva din aceste tutoriale. Datorita celor ca tine, utilizatorii bine intentionati nu pot posta intrebari ce includ cod. Oricum, si noi am invatat ceva din aceasta experienta si iti multumim!

Raporteaza acest comentariu ca injurios!
miha , Miercuri, 24 Iunie 2009
#6

atac

Raporteaza acest comentariu ca injurios!
Drugg , Marti, 17 Martie 2009
#5

bravo autorul !!! Acum anumite lucruri au devenit mai clare pt mine :)

Raporteaza acest comentariu ca injurios!
pesos , Vineri, 19 Decembrie 2008
#4

e bun tutorialul dar ar mai fi ceva la constructori mai multe de explicat in rest e foarte bun ii multumesc autorilor pt material si daca se poate sa-l mai completati

Raporteaza acest comentariu ca injurios!
Dani , Joi, 07 August 2008
#3

O fi mediu, dar nimeni nu se naste invatat, multumiri autorilor, atat cat e mi-a folosit.

Raporteaza acest comentariu ca injurios!
Tronaru Mioara , Luni, 21 Iulie 2008
#2

Este un tutorial f.bun - cu ajutorul caruia mi-am clarificat multe probleme.Excelent!

Raporteaza acest comentariu ca injurios!
sacue , Luni, 02 Iunie 2008
#1

Legat de nivelul acestui tutorial, cred ca mai potrivit ar fi fost "Mediu". Conceptul de obiect cam aici se incadreaza ...


Parerea mea ....

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4435
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4335
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4295
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4140
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Excel Flash JSON Powerpoint SEO Javascript XHTML Swift 3D MySQL AJAX Fotografie Sony Vegas Dreamweaver RoR PHP HTML Word Java Gimp Lightroom COREL DRAW Outlook Photoshop Ruby on Rails Python Bridge Fireworks Action Script Verilog StyleSheet XML SWF PSD CSS Vista Illustrator
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software