Program orientat obiect în PHP. PHP orientat pe obiecte: special pentru începători

16 aprilie 2008 la 12:15

PHP - OOP sau abordare procedurală

  • PHP

PHP este unul dintre cele mai populare limbaje de programare de scripting. Aproape 60% dintre serverele web folosesc PHP Milioane de site-uri web și aplicații web sunt dezvoltate în PHP în fiecare lună.

PHP a fost dezvoltat inițial ca un simplu înlocuitor pentru Perl, iar în câțiva ani a devenit extrem de puternic și popular. limbaj PHP, în sine este foarte asemănător cu ANSI C.
Unul dintre motivele pentru care PHP a devenit atât de popular este curba sa scurtă de învățare.

Învățarea PHP nu este deloc dificilă, mai ales dacă ești familiarizat cu sintaxa Java sau C.

Deci, cum să scriu Scripturi PHP pur și simplu, oricine poate scrie cod PHP fără a respecta nicio convenție și a amesteca stratul de prezentare cu logica de afaceri (acesta este unul dintre principalele motive ale existenței). cantitate mare proiecte negestionate). Deoarece PHP nu are neapărat convenții stricte de codificare, de-a lungul anilor, pe măsură ce proiectul devine din ce în ce mai mare, devine o aplicație imensă, de negestionat.

OOP sau programarea orientată pe obiecte este bine folosită în practica de programare pentru a crea proiecte mai ușor de gestionat.
Abordarea procedurală implică scrierea codului programului fără a utiliza obiecte. Programarea procedurală presupune scrierea codului cu sau fără rutine.

OOP antrenează orice limbaj de programare pentru a produce un cod de program mai bun și este folosit pentru a produce mai bine performante ridicateși scrisul proiecte mari, fără teama de a se încurca în managementul lor. OOP vă oferă posibilitatea de a crea obiecte reutilizabile, astfel încât dvs. sau alți dezvoltatori să le puteți utiliza în proiectele lor fără a le reproiecta iar și iar. OOP elimină barierele și complexitatea în scrierea și gestionarea aplicațiilor mari.

PHP ne permite să scriem aplicații în 2 moduri diferite, primul este procedural și al doilea este orientat obiect. Dacă încă nu înțelegeți diferența dintre aceste două abordări, să ne uităm la aceste bucăți de cod - același exemplu scris în abordări diferite.

Procedural:

$user_input = $_POST[‘câmp’];
$conținut_filtrat = filtru ($intrare_utilizator); //filtrarea intrărilor utilizatorului
mysql_connect("dbhost", "dbuser", "dbpassword"); //baza de date
mysql_select_db("nume db");
$sql = „o interogare”;
$rezultat = mysql_query($sql);
while ($date = mysql_fetch_assoc())
{
proces($date);
}
process_user_input($conținut_filtrat);

Și iată aceeași bucată de cod folosind OOP:

$input_filter = filtru nou();
$input_filter->filter_user_input(); //se filtrează intrările utilizatorului
$db = new dal("mysql"); //stratul de acces la date
$db->connect($dbconfig);//folosim mysql
$rezultat = $db->execute($sql);
ReportGenerator::makereport($rezultat); //procesează datele
$model = new Postmodel($filtru->get_filtered_content());
$model->inserare();

Dacă te uiți îndeaproape la aceste 2 bucăți de cod, vei observa că codul care utilizează OOP este mai ușor de citit și mai ușor de înțeles.

Codul cu OOP este mai bine organizat deoarece este clar cu ce obiect este procesat. Aplicațiile mari scrise folosind o abordare procedurală devin aproape imposibil de perceput după ce au fost lansate mai multe versiuni. Desigur, puteți urma reguli stricte pentru scrierea codului programului, dar acestea sunt aprobate de milioane de dezvoltatori care știu că acest lucru nu vă va oferi, în cele din urmă, capacitatea de gestionare și de utilizare a proiectului dacă nu utilizați OOP în programul dvs.
Aproape totul aplicații mari scrise folosind orientat obiect
abordare.

Pe baza celor de mai sus, putem extrage avantajele utilizării OOP:

OOP a fost creat pentru a face viața mai ușoară dezvoltatorilor. Folosind POO vă puteți descompune problemele mari în probleme mici, care sunt mult mai ușor de rezolvat.
Principala cerință a OOP: faceți tot ce doriți ca obiecte. Obiectele sunt bucăți mici de cod separate care pot combina date și proprietăți împreună. În aplicații, toate obiectele interacționează între ele.

OOP poate fi considerat mai bine din unghiuri diferite, mai ales atunci când timpul de dezvoltare și dezvoltarea ulterioară a aplicației sunt importante pentru dvs.
Principalele avantaje ale utilizării OOP pot fi exprimate astfel:

* Reutilizați: Un obiect este un obiect logic care are un set de proprietăți și metode și poate interacționa cu alte obiecte. Un obiect poate fi complet independent sau poate depinde de alte obiecte. Un obiect este de obicei creat pentru a rezolva probleme specifice. Prin urmare, atunci când alți dezvoltatori întâmpină probleme similare, ei vă pot conecta clasa la proiectul lor și o pot folosi fără teama că nu le va întrerupe procesul de dezvoltare. Acest lucru evită DRY, care înseamnă Don’t Repeat Yourself. În programarea procedurală sau modulară, reutilizare posibilă numai în agregat.

* Refactorizarea: Când trebuie să utilizați refactorizarea într-un proiect, OOP vă oferă avantaje maxime, deoarece toate obiectele sunt elemente mici și își conțin proprietățile și metodele ca parte a lor. Acest lucru face ca refactorizarea să fie relativ ușor de utilizat.

* Extensibilitate: Dacă aveți nevoie să extindeți funcționalitatea proiectului dvs., puteți obține rezultate mai bune folosind OOP. Una dintre principalele funcționalități ale OOP este extensibilitatea. Puteți utiliza refactorizarea obiectelor pentru a adăuga funcționalitate. Lucrând la acest lucru, puteți salva în continuare
compatibilitatea anterioară a obiectului - prin urmare, puteți lucra bine cu vechiul cod. Sau puteți extinde obiectul și crea unul complet nou, care va conține totul proprietățile necesareși metodele obiectului părinte din care este derivat noul și apoi adăugați-i funcții noi. Aceasta se numește „moștenire” și este o caracteristică foarte importantă a OOP.

* Sprijin: codul orientat pe obiecte este mai ușor de întreținut deoarece
urmează convenții de codare foarte stricte și este scrisă într-o manieră auto-explicativă.
De exemplu, atunci când un dezvoltator adaugă, reprelucrează sau depanează codul, el poate găsi cu ușurință structura internă a codului și poate menține codul din când în când. Mai mult, atunci când aveți o echipă de dezvoltatori care lucrează în mediul dvs., OOP poate fi o soluție mai bună, deoarece vă puteți distribui codul între membrii echipei după ce îl descompuneți în părți mici. Aceste piese mici pot fi proiectate ca obiecte individuale, prin urmare, dezvoltatorii pot lucra aproape independent unul de celălalt. În cele din urmă, combinarea tuturor pieselor într-o singură aplicație nu va fi dificilă.

* Eficienţă: Ideea OOP a fost de fapt dezvoltată pentru a crește eficiența și a face procesul de dezvoltare mai ușor. Sunt dezvoltate mai multe modele de design pentru a crea un cod mai eficient și mai bun.
Mai mult, în POO poți reflecta asupra deciziilor tale într-un mod mai convenabil decât într-o abordare procedurală. Pentru că vă împărțiți problema în mai multe probleme mici și găsiți o soluție pentru fiecare dintre ele separat, mare problema se rezolvă singur.

P.S primul meu habratopic, dacă vă place voi traduce cartea în continuare, pentru că pentru mine este destul de interesant și informativ

Dacă găsiți erori critice în traducere, vă rugăm să lăsați comentarii. Comentariile tale vor fi luate în considerare cu siguranță. Oricum, sper sa gasesti acest articol foarte util.

Sunt multe diferite exemple simple, care conturează principiul de funcționare al OOP. Astăzi am decis să vă arăt cum funcționează OOP (programare orientată pe obiecte)în viața reală; în special acest exemplu util pentru programatorii începători. Prin crearea unei clase sub MYSQL CRUD (CRUD - create read update delete - „Creation read update delete”), puteți crea, citi, actualiza și șterge cu ușurință înregistrări în oricare dintre proiectele dvs., indiferent de modul în care este proiectată baza de date.

Odată ce înțelegeți de ce avem nevoie, puteți crea cu ușurință un schelet pentru clasa noastră. În primul rând, trebuie să includem în clasă funcțiile de bază pentru lucrul cu MySQL. Următoarele caracteristici sunt necesare.

  • Selecta
  • Introduce
  • Şterge
  • Actualizare
  • Conectați-vă
  • Deconecta

Mai jos este definiția clasei noastre. Rețineți că toate metodele pe care le-am creat folosesc cuvântul cheie public.

Baza de date de clasă ( public function connect() ( ) public function disconnect() ( ) public function select() ( ) public function insert() ( ) public function delete() ( ) public function update() ( ) )

funcția connect().

Această funcție va fi destul de simplă, dar înainte de a scrie funcția, va trebui să definim câteva variabile. Variabilele ar trebui să fie accesibile numai în cadrul clasei, astfel încât fiecare variabilă este precedată de cuvântul cheie privat. Toate variabilele (gazdă, nume de utilizator, parolă, numele bazei de date) sunt folosite pentru a se conecta la baza de date Date MySQL. După aceasta, putem crea un simplu interogare MySQL la baza de date. Desigur, ca programatori, ar trebui să ne așteptăm la orice de la utilizatori și, pe baza acestui lucru, trebuie să luăm anumite măsuri de precauție. Putem verifica: dacă utilizatorul este deja conectat la baza de date, atunci, în consecință, nu trebuie să se reconecteze la baza de date. În caz contrar, putem folosi acreditările utilizatorului pentru a ne conecta.

Private db_host = ''; private db_user = ''; private db_pass = ''; private db_name = '';

/* * Conectați-vă la baza de date, este permisă o singură conexiune */ public function connect() ( if(!$this->con) ( $myconn = @mysql_connect($this->db_host,$this->db_user,$ this- >db_pass); if($myconn) ( $seldb = @mysql_select_db($this->db_name,$myconn); if($seldb) ($this->con = true; return true; ) else ( return false ) ) else ( returnează fals; ) ) else ( returnează adevărat; ) ) După cum puteți vedea mai sus, folosim funcții de bază

MySQL și faceți o mică verificare a erorilor pentru a vă asigura că totul merge conform planului. Dacă utilizatorul s-a conectat la baza de date, returnăm true, în caz contrar returnăm false. Ca un bonus suplimentar, setăm variabila (con) la adevărat dacă conexiunea este stabilită.

Funcția publică deconectare()

Funcția verifică variabila de conexiune pentru a vedea dacă există. Dacă conexiunea este stabilită (con există), atunci închideți conexiunea la baza de date MySQL și returnați true . Altfel, nu trebuie să faci nimic.

Funcția publică disconnect() ( if($this->con) ( if(@mysql_close()) ( $this->con = false; return true; ) else ( return false; ) ) )

Funcția publică select() Să ajungem la partea în care lucrurile se complică puțin. Începem să lucrăm cu argumentele utilizatorului și returnăm rezultatele interogării. Nu trebuie să folosim rezultatele chiar acum, dar trebuie să creăm o variabilă în care vom stoca rezultate personalizate pentru interogările din baza de date. În plus, vom crea și noi caracteristică nouă , care va verifica dacă există acest tabel

Private $result = array();

/* * Verificați existența unui tabel la executarea unei interogări * */ private function tableExists($table) ( $tablesInDb = @mysql_query("SHOW TABLES FROM ".$this->db_name." LIKE "".$table ."" ; if($tablesInDb) ( if(mysql_num_rows($tablesInDb)==1) ( returnează adevărat; ) else ( returnează false; ) ) Această funcție pur și simplu verifică masa dorită

în baza de date. Dacă tabelul există, va returna true, în caz contrar, va returna false.

/* * Preluarea informațiilor din baza de date * Obligatoriu: tabel (nume tabel) * Opțional: rânduri (coloane obligatorii, delimitator virgulă) * unde (coloană = valoare, transmisă ca șir) * ordine (sortare, transmisă ca șir) * / funcția publică select( $table, $rows = "*", $where = null, $order = null) ( $q = "SELECT ".$rows." FROM ".$table; if($where != null) ) $q .= " UNDE ".$unde; if($comanda != null) $q .= " ORDER BY ".$comandă dacă($this->tableExists($table)) ( $query = @mysql_query; ($q); if($query) ( $this->numResults = mysql_num_rows($interogare); for($i = 0; $i numResults; $i++) ( $r = mysql_fetch_array($interogare); $key = array_keys($r) ; for($x = 0; $x 1) $this->result[$i][$key[$x]] = $r[$key[$x]] else if(mysql_num_rows( $interogare) rezultat = null $this->result[$key[$x]] = $r[$key[$x]] ) return true ( return false; ) ) else return false;

Următoarea secțiune conține codul cu adevărat magic. Ideea este aceasta: colectați datele solicitate din tabel. Apoi atribuim rezultatul unei variabile. Pentru a simplifica rezultatul pentru utilizatorul final, vom folosi nume de coloane în loc de taste numerice. Dacă numărul de rânduri din tabel este mai mare decât unul, rezultatul va fi o matrice bidimensională în care prima cheie este numărul (incrementul), a doua cheie este numele coloanei. Dacă există un singur rând în tabel, acesta va reveni matrice unidimensională, numele cheilor corespund cu numele coloanelor din tabel. Dacă nu se găsesc rânduri în tabel, variabila rezultat va fi setată la null . După cum am spus mai devreme, totul pare puțin confuz, dar odată ce ați împărțit codul în secțiuni separate, totul devine mult mai simplu și mai clar.

funcția publică insert()

Această funcție este puțin mai simplă decât cele anterioare. Pur și simplu vă permite să introduceți informații în baza de date. Astfel, pe lângă numele tabelului, vom avea nevoie de argumente suplimentare. Vom avea nevoie de o variabilă care va conține valorile relevante pentru inserarea în tabel. Apoi vom separa fiecare valoare cu o virgulă. De asemenea, verificăm prezența tabelului dorit folosind funcția tableExists și creăm o interogare de inserare manipulând argumentele transmise funcției insert(). Apoi trimitem cererea noastră la adresa dorită.

/* * Inserați valori în tabel * Obligatoriu: tabel (numele tabelului) * valori (valori introduse, o matrice de valori este transmisă, de exemplu, * array(3,"Nume 4","Nume 4"," [email protected]");) * Opțional: * rânduri (numele coloanelor în care inserăm valorile este transmis ca șir, * de exemplu, „titlu,meta,date” * */public function insert($tabel,$valori) ,$rows = null) ( dacă ($this->tableExists($table)) ( $insert = „INSERT INTO ".$table; if($rows != null) ( $insert .= " (".$rows) ."" ) pentru( $i = 0;< count($values); $i++) { if(is_string($values[$i])) $values[$i] = """.$values[$i]."""; } $values = implode(",",$values); $insert .= " VALUES (".$values.")"; $ins = @mysql_query($insert); if($ins) { return true; } else { return false; } } }

După cum puteți vedea, această funcție este destul de simplă în comparație cu compunerea selectați interogări la baza de date. De fapt, funcția de ștergere va fi și mai simplă.

Funcția publică delete()

Această funcție pur și simplu șterge un tabel sau rânduri din baza noastră de date. Astfel, trebuie să transmitem funcției numele tabelului și un argument opțional care definește condiția unde. În condiția care urmează cuvântului cheie WHERE, există o precizare: ștergeți un rând, rânduri sau întregul tabel. Dacă clauza where este omisă, toate rândurile vor fi șterse. Apoi se face o cerere de ștergere și cererea este executată.

/* * Ștergeți un tabel sau înregistrări care îndeplinesc condiția * Obligatoriu: tabel (numele tabelului) * Opțional: unde (condiție ), transmis ca șir, de exemplu, "id=4" */ public function delete($table, $unde = null) ( if($this->tableExists($table)) ( if($where == null) ( $delete = "ȘTERGERE ".$table; ) else ( $delete = "ȘTERGERE DIN ".$ tabel." WHERE " $unde ) $del = @mysql_query($delete if($del) ( return true; ) else ( return false; ) )

În cele din urmă, să trecem la ultima noastră funcție principală. Această funcție este utilizată pentru a actualiza un rând din baza de date informații noi. Această funcție la prima vedere greu de înțeles, însă, acest lucru nu este în întregime adevărat. Vom folosi toate aceleași principii ca înainte. De exemplu, argumentele vor fi folosite pentru a compune cererea de actualizare. Vom verifica, de asemenea, existența unui tabel folosind metoda tableExists. Dacă tabelul există, actualizați rândul corespunzător. Cea mai grea parte, desigur, este acolo unde scriem cererea de actualizare. Deoarece instrucțiunea de actualizare are regula de a actualiza toate rândurile simultan, trebuie să luăm în considerare acest lucru și să ajustam acest punct în mod corect. Deci, am decis să trec condiția where ca o matrice simplă. Primul argument din această matrice este numele coloanei, următorul argument este valorile coloanei. Astfel, fiecare număr par (inclusiv 0) corespunde unui nume de coloană, iar fiecare număr impar conține o valoare impară. Codul relevant este mai jos:

Pentru($i = 0; $i

În secțiunea următoare, vom crea partea de actualizare a instrucțiunii prin setarea variabilelor. Pentru că poți schimba orice valoare numerică, am preferat o matrice cu chei după numele coloanei și valori noi. Astfel, tot ce trebuie să facem este să verificăm tipul valorii și unde trebuie să punem virgula. Acum că am scris cele două părți principale ale instrucțiunii de actualizare, nu este dificil să finalizați declarația de actualizare, codul este prezentat mai jos:

Actualizare funcție publică($tabel,$rânduri,$unde,$condiție) ( if($this->tableExists($table)) ( // Analizați unde valorile // valorile chiar (inclusiv 0) conțin unde rândurile // valorile impare conțin clauzele pentru rândul pentru ($i = 0; $i

Deci, am terminat de creat ultima funcție și clasa noastră de lucru cu CRUD poate fi considerată completă. Acum puteți crea înregistrări noi, puteți citi înregistrări individuale din baza de date, puteți actualiza înregistrări și puteți șterge înregistrări. În plus, odată ce începeți să reutilizați această clasă, veți descoperi că economisiți timp și linii de cod semnificative. Adică veți simți eficacitatea și avantajul OOP.

Utilizare

Deci ne-am creat clasa, dar cum o folosim? Totul este simplu aici. Să începem prin a crea o bază de date simplă în care să ne testăm clasa. Am creat baza de date de teste și am compilat mysql simplu operator. Îl poți pune în orice bază de date.


Prima linie este comentată deoarece nu este întotdeauna necesar. Dacă trebuie să rulați codul anterior de mai multe ori, va trebui să decomentați prima linie pentru a vă asigura că tabelul este creat.

Acum că tabelul nostru este creat și populat, este timpul să rulăm câteva interogări simple.

conecta (); $db->select("mysqlcrud"); $res = $db->getResult(); print_r($res); ?>

Dacă totul este făcut corect, veți vedea următoarele:

În mod similar, putem rula o interogare de actualizare și putem scoate rezultatele.

update("mysqlcrud",array("name"=>"Schimbat!"),array("id",1),"="); $db->update("mysqlcrud",array("nume"=>"Schimbat2!"),array("id",2),"="); $res = $db->getResult(); print_r($res); ?>

Ieșire:

Acum doar introduceți intrarea:

insert("mysqlcrud",array(3,"Nume 4"," [email protected]")); $res = $db->getResult(); print_r($res); ?>

Vom acoperi concepte precum programarea orientată pe obiecte, clase PHP, constructori PHP, destructori PHP, magia metode PHP etc. Acest tutorial este destinat începătorilor și programatorilor cu experiență care doresc să învețe PHP OOP de la un nivel de bază.

Una dintre cele mai mari modificări din PHP 5 este includerea unui model complet bazat pe obiecte, care îmbunătățește performanța. Unele dintre noile funcții importante adăugate în PHP 5 includ metode finale și abstracte, clase, interfețe, clonare și metode magice. Ne vom uita la acest manual Exemple PHP OOP de utilizare a fiecăruia dintre ele.

În programarea orientată pe obiecte, un obiect este tratat în același mod ca referințele sau pointerii. Aceasta înseamnă că fiecare variabilă nouă conține o referință la obiect, mai degrabă decât o copie a întregului obiect.

Conceptul cel mai dificil de înțeles este elementele de bază ale OOP, deoarece sunt diferite de programarea PHP obișnuită. Dar odată ce înțelegi principiile de bază, modelul în sine va deveni simplu și clar pentru tine.

Ce este OOP în PHP?

Întrucât termenul de programare orientată pe obiecte începe cu cuvântul „obiect”, putem spune că este un tip special de programare în care obiectele sunt create și utilizate.

Iată o explicație a PHP OOP pentru manechin. Uită-te la lumea din jurul nostru, este plină de obiecte. Soare, luna, mașini, copaci, case etc. etc. Toate acestea sunt obiecte, au atribute și funcții. În procesul de gândire, operăm cu obiecte. Când vorbim despre o mașină, nu te gândești la roți, la motor, la scaune, la uși, te gândești la mașină ca la ceea ce este. Mai simplu spus, gândești în termeni de subiect sau obiect. Orientarea obiectelor este reprezentarea elementelor ca obiecte în programare.

Mașina este un obiect. Are atributele de culoare, dimensiune, greutate și funcție de mișcare. Orice obiect fără funcționalitate va fi inutil. În POO, programatorul folosește obiecte; Fiecare obiect are anumite atribute și funcții. În general, programarea se reduce la construirea de module folosind obiecte.

O definiție simplă a programării orientate pe obiecte:

Programarea orientată pe obiecte este programarea bazată pe obiecte care conțin date (atribute) și metode (funcționalitate) care procesează aceste date. Obiectele sunt un tip de date definite de programator și interacțiunile dintre ele diverse obiecte determinate de asemenea de programator.

Cu alte cuvinte, OOP permite programatorului să grupeze sarcini similare în clase, clasa poate conține date și funcții pentru accesarea acestor date, legate între ele.

OOP de bază în PHP vă ajută să dezvoltați cod care este mai ușor de întreținut și gestionat. Cu cât codul este mai curat și mai lizibil, cu atât este mai probabil să fie reutilizat. Ca rezultat, modelele de proiectare pot fi aplicate sistemului. În OOP, modulele sunt create și utilizate conform cerințelor. Cu ajutorul programării orientate pe obiecte în PHP, putem crea aplicații pentru site-uri web care au o structură modulară.

Termeni importanți din tutorialul PHP OOP:

Mai jos este o definiție generală a unora termeni importanți, care sunt adesea folosite în PHP orientat pe obiecte.

Clasă

În OOP Clasa PHP este un tip de date definit de programator. Clasa conține date și funcții pentru lucrul cu aceste date. Datele și funcțiile au ID de acces privat. Aceasta înseamnă că nu sunt vizibile în afara clasei. O clasă este un șablon sau șablon din care se pot face atâtea copii sau instanțe cât este necesar.

Obiect

Un obiect este cunoscut și ca instanță. Când este instalată o instanță a unei clase, este creat un obiect. Dacă o clasă este un eșantion, atunci un obiect este produsul final creat folosind eșantionul. Odată ce o clasă a fost definită, multe obiecte pot fi create din ea.

Variabila membru

Variabilele definite într-o clasă sunt numite variabile membre. De fapt, sunt datele conținute în această clasă, acestea pot fi modificate doar de funcțiile acestei clase. De obicei, variabilele membre sunt vizibile numai pentru acea clasă și sunt ascunse de alte clase.

Funcția de membru

Funcțiile definite într-o clasă sunt numite funcții membru. De asemenea, ele nu sunt vizibile pentru alte clase. Sunt folosite pentru a schimba variabilele membre pentru a accesa datele obiectului.

Constructor

Un constructor este un tip special de funcție membru. Când o clasă este setată, este creat un obiect, această funcție este apelată automat și atribuită valorile initiale variabile de clasă.

Destructor

Acesta este un tip special de funcție care este apelată automat atunci când un obiect este șters.

Moştenire

În PHP 5 OOP, moștenirea este procesul prin care o clasă (subclasă) primește toate atributele și funcțiile unei alte clase (superclasă).

Super clasa

Cunoscută și ca clasă de bază sau părinte - moștenit de una sau mai multe subclase.

Subclasă

Un copil sau o clasă derivată, o subclasă moștenește de la o superclasă.

Polimorfismul

Acesta este un fenomen în POO în care o singură funcție poate fi utilizată în mai multe scopuri.

Încapsulare

Unul dintre cele mai importante concepte în programarea orientată pe obiecte. Datele și funcțiile care funcționează cu aceste date sunt interconectate și nu sunt vizibile pentru alte funcții.

Abstracția

Abstracția înseamnă că detaliile de implementare ale funcțiilor sau claselor nu sunt vizibile.

, ceea ce înseamnă că funcții având aceleasi nume, dar un număr diferit de argumente sunt executate diferit.

Clase si obiecte:

Clasa și obiectul sunt utilizate pe scară largă ca sinonime în programarea orientată pe obiecte, dar la baza lor sunt foarte diferite unele de altele. O clasă reprezintă un model, un model sau o matriță, iar un obiect este un produs sau o parte turnată din acel model sau matriță.

Să luăm de exemplu o casă. Sala de clasă este fundația căminului; are dimensiuni, forma, numar de usi, treceri etc. Dar acesta este doar un proiect, nu casa în sine. Atunci când o casă fizică este construită pe baza informațiilor conținute în plan, aceasta este un obiect.

Înainte de aceasta, obiectul era un morman de lemn, cărămizi, ciment etc., din care se construia o casă sau un obiect conform informațiilor din plan:

O clasă în PHP OOP este un plan sau șablon conform căruia este instalată o instanță a unei clase și este creat un obiect. Odată ce clasa a fost creată, putem crea câte obiecte dorim. În figura de mai sus, cinci obiecte (case) au fost create dintr-o clasă (plan). Un obiect va urma întotdeauna instrucțiunile date în clasa folosită pentru a-l crea.

Avantajele OOP în PHP:

  1. Arhitectură îmbunătățită și cod mai curat

PHP orientat pe obiecte este mai bine catalogat și ușor de ambalat, permițându-vă să specificați arhitectura optimă. De obicei, fiecare clasă este salvată într-un fișier separat. Limbile procedurale sunt caracterizate de un cod complex, care este foarte greu de citit sau de înțeles. În POO, prin implementarea obiectelor care conțin date private cu definiții clare ale relațiilor dintre obiecte, codul este lizibil și curat.

  1. Reutilizați

Programarea orientată pe obiecte face codul reutilizabil. Obiectele create o dată pot fi folosite din nou și din nou. Programele pot fi construite prin combinarea modulelor de lucru în loc să scrieți totul de la zero. Acest lucru economisește timp și îmbunătățește productivitatea.

  1. Ușor de întreținut și actualizat

Obiectele au propriile lor date și funcții, iar întreaga lor structură este compactă și comprimată, ceea ce facilitează efectuarea modificărilor codului. Programarea procedurală convențională produce cod în care este foarte dificil să găsești un punct pentru a face modificări. În PHP OOP, putem adăuga o nouă proprietate și apoi putem adăuga metode asociate pentru a manipula acea proprietate.

  1. Încapsulare

Încapsularea înseamnă că valorile variabilelor unui obiect nu sunt vizibile din exterior, prin urmare securitatea datelor este implementată. Dar dacă este nevoie, datele pot fi accesate folosind modificatorii de acces. Pentru a crea programe sigure datele și funcțiile membre dintr-o clasă pot fi ascunse de alte clase. Odată ce un obiect este creat, nu sunt necesare informații de implementare pentru a-l utiliza.

  1. Moştenire

Clasa moștenitoare primește toate caracteristicile clasei părinte și apoi îi adaugă propriile caracteristici. Subclasa moștenește variabilele și metodele superclasei. Putem extinde utilizarea claselor existente și, de asemenea, putem elimina codul inutil.

" Va fi util atât pentru începătorii complet verzi, cât și pentru cei care sunt deja destul de buni la scrierea codului non-orientat pe obiect și vor să afle de ce este încă nevoie de OOP.

Ceea ce m-a făcut să scriu mai multe articole despre OOP în php a fost faptul că nu am găsit articole pe această temă care să mă mulțumească. Există manuale sau articole oficiale seci și plictisitoare care prezintă în esență aceleași manuale doar cu mai multe exemple detaliate, există și o mulțime de informații învechite pe acest subiect pe Internet.

De ce avem nevoie de OOP?

Popularitatea și simplitatea PHP duce la faptul că majoritatea codului scris în acest limbaj este de o calitate foarte dubioasă. Cu doar puțin timp liber învățând acest limbaj și puțină perseverență, chiar dacă nu ești familiarizat cu programarea, poți începe să scrii aplicații web. Ca învățarea php le poți face mai funcționale. Cu toate acestea, dacă nu ți-ai făcut timp pentru a proiecta, vei face în curând funcții suplimentareîn aplicație, depanarea și testarea acesteia devin mai complicate și pentru a adăuga ceva mic, trebuie să stârniți o cantitate din ce în ce mai mare de cod, devine din ce în ce mai de neînțeles și mai confuz, alți dezvoltatori, familiarizați cu codul dvs., vor începe să înjură şi critică aspru.

Ilustrație din cartea „Cod curat” - Robert Martin

Deci care e problema? De ce proiectul pe care îl aveți în minte, atunci când este extins, se poate transforma atât de repede într-o grămadă de coduri confuze cu un nor de bug-uri? Faptul este că începătorii scriu cod care face doar ceea ce se cere de la el într-o situație specifică și nu implică efectuarea de modificări. Această abordare nu este acceptabilă, mai ales pentru aplicațiile web, care vor trebui inevitabil să crească și să se dezvolte dacă, desigur, vor deveni populare. Mai devreme sau mai târziu, dvs. și poate alți dezvoltatori, va trebui să vă întoarceți la codul scris anterior și să faceți modificări la acesta și, cu cât este mai ușor să faceți acest lucru, cu atât aplicația dvs. se va dezvolta mai repede și va câștiga popularitate.

Abordarea orientată pe obiect a programarii, desigur, nu este un panaceu pentru toate bolile și prin ea însăși nu vă va îmbunătăți codul, dar utilizarea sa vă va permite să prezentați codul nu ca o grămadă de funcții și variabile, ci ca o colecție de obiecte care interacționează între ele, ceea ce este mult mai clar. Datele nu vor rămâne nicăieri - vor fi stocate în obiecte, protejându-le de utilizare greșită. Funcțiile (în programarea orientată pe obiecte sunt numite metode) nu vor efectua doar acțiuni cu variabile, ci vor descrie comportamentul obiectelor. În esență, aceasta implică modelarea entităților reale, cum ar fi un utilizator, o postare, un comentariu la acesta și așa mai departe.

În plus, așa-numitele modele de design sunt comune în OOP - modele pentru rezolvarea unei probleme care apare constant în programare. Utilizarea acestor șabloane vă va permite, în primul rând, să cunoașteți deja soluția unei anumite probleme înainte de a apărea, iar în al doilea rând, soluția problemei va fi clară pentru alți dezvoltatori familiarizați cu șablonul pe care l-ați folosit.

Concepte de bază

OOP este o metodologie de programare (metodă, abordare) conform căreia produs software este reprezentată sub formă de obiecte care interacționează. Nu sunt de acord că OOP implică întotdeauna utilizarea claselor - js, de exemplu, este un limbaj orientat pe obiecte, dar nu are clase. Cu toate acestea, atunci când se aplică la php OOP implică întotdeauna folosirea claselor.

Sub obiect De obicei, este înțeles ca o anumită entitate numită care stochează date și are propriul comportament. Comportamentul unui obiect și structura datelor pe care le stochează, precum și modul în care sunt accesate aceste date, descrie clasa căreia îi aparține obiectul. Clasă Aceasta este o descriere a obiectelor oarecum similare, înrudite, care stochează de obicei același set de date și au același comportament. Un obiect care aparține unei anumite clase este numit copie. Un exemplu este o clasă care descrie un utilizator. Această clasă descrie structura de date pe care o va stoca fiecare instanță a acestei clase. Lăsați aceste date să fie numele dvs. de conectare și parola. Un obiect de clasă care stochează anumite valori de conectare și parolă va fi o instanță a acestei clase.

Trei piloni ai POO


OOP se bazează pe trei principii, adesea numite cei trei piloni ai POO, acestea sunt:

  • încapsulare
  • polimorfism
  • moştenire

Încapsulare este principiul conform căruia datele sunt combinate și stocate în obiecte și sunt, de asemenea, protejate de utilizarea incorectă.

Vi se poate părea ciudat că programatorul își limitează drepturile de citire sau modificare a datelor, dar se întâmplă adesea să fie foarte dificil să urmăriți și să înțelegeți complet cum funcționează codul și, prin urmare, merită să evitați situațiile care sunt evident. eronat.
Un exemplu de utilizare greșită a datelor ar fi încercarea de a atribui o vârstă negativă unei instanțe a clasei Persoană. Desigur, o astfel de încercare, cu cod bine scris, nu ar trebui să aibă succes, altfel principiul încapsulării va fi încălcat.
În practică, principiul încapsulării este că datele sunt accesate folosind metode care pot filtra sau ajusta valorile datelor pe care încercăm să le schimbăm.

Moştenire este procesul prin care un tip de obiect (clasă) dobândește anumite proprietăți ale altui tip de obiect.

Se întâmplă adesea ca descrierea unui tip de obiect, adică a unei clase, să se încadreze complet sub descrierea unui alt tip de obiect. De exemplu, o clasă care descrie un administrator poate descrie și un utilizator, cu excepția faptului că utilizatorul nu are drepturi de acces. În acest caz, este logic să creați o clasă care să descrie administratorii, descendent clasa care descrie utilizatorii. În același timp, în clasa care descrie administratorii, nu trebuie să descriem datele și comportamentul care sunt deja descrise în clasa „utilizator” trebuie doar să descriem datele care vor fi responsabile pentru acordarea drepturilor de acces; În acest caz clasa „utilizator” va fi strămoş clasa „administrator”, care poate avea propriul copil, iar acel copil poate avea propriul său etc. Lanțul de moștenire poate fi atât de lung cât se dorește. În plus, un strămoș poate avea mai mulți descendenți, fiecare dintre care va dobândi complet proprietățile strămoșului său și le va adăuga ceva propriu, altfel moștenirea este lipsită de sens.

Polimorfismul este utilizarea aceluiași nume de metodă pentru a rezolva mai multe probleme similare.

Este firesc să folosiți același nume de metodă pentru aceeași acțiune cu diferite tipuri de obiecte ale aceluiași lanț de moștenire. Implementarea acestei metode poate diferi în fiecare clasă și prin apelarea metodei nu vom ști Cum face ceva, dar vom ști Ce o face pe baza numelui său. Să revenim la exemplul nostru cu utilizatorul și administratorul. Atât administratorul, cât și utilizatorul se pot autentifica și pot alege în mod natural un nume de metodă pentru această acțiune, de exemplu LogIn. Implementarea sa specifică în aceste clase poate diferi, de exemplu, în timpul autorizării înregistrăm drepturile de acces ale administratorului la sesiune, dar nu și pentru utilizator. Când scriem cod care prelucrează datele primite din formularul de cod, după crearea unei instanțe a clasei, nu va conta pentru noi dacă se conectează un simplu utilizator sau un administrator - pentru o instanță a oricăreia dintre aceste două clase, vom numi un metoda cu acelasi nume.

E destul de plictisitoare teorie. Data viitoare voi scrie despre cum să descriu clasele, să creez instanțe de clasă, să accesez date (câmpuri) și metode ale instanțelor.

În acest tutorial veți învăța elementele de bază ale programării orientate pe obiecte în PHP. Veți afla despre principiile OOP în general și veți învăța cum să scrieți scripturi simple în PHP.

Bun venit la prima dintr-o serie de lecții despre POO în PHP! Prin finalizarea tuturor lecțiilor din această serie, veți afla despre principiile și conceptele de bază ale POO și veți învăța cum să creați rapid și ușor aplicatii utileîn PHP.

În acest tutorial voi începe să vă pun la curent și să vă spun despre conceptele de bază ale OOP. Vei invata:

  • ce este OOP
  • cum vă va ajuta OOP să creați cel mai bun PHP scenarii
  • câteva concepte de bază precum clase, obiecte, metode, variabile de clasă
  • de unde să încep scriind PHP scenariu

Sunteți gata să vă scufundați în lumea obiectelor PHP? Atunci dă-i drumul!

Ce este programarea orientată pe obiecte?

Dacă ați creat și folosit vreodată funcții personalizate în PHP, ați folosit un stil de programare procedurală. În programarea procedurală, de obicei creați structuri de date - numere, șiruri, matrice etc. - să stocheze unele date, iar apoi să proceseze aceste structuri cu funcții speciale care manipulează aceste date.

Programarea orientată pe obiecte, sau OOP, a avansat deoarece aici stocăm structurile de date și funcțiile care le procesează într-o singură entitate numită obiect. În loc să procesați datele cu o anumită funcție, încărcați acele date într-un obiect și apoi apelați metodele acestuia pentru a le manipula și a obține rezultatul dorit.

Cel mai adesea, obiectele create folosind POO reflectă entități reale. De exemplu, dacă creați un forum pentru site-ul dvs., veți crea un obiect Membru care va stoca informații despre fiecare membru al forumului (nume, autentificare, e-mail, parolă etc.), precum și metode care vor procesa aceste informații ( înregistrare, autorizare, deconectare, interzicere etc.).

De ce să folosiți OOP?

Procedural și orientat pe obiecte sunt două moduri diferite face acelasi lucru. Acest lucru nu înseamnă că una dintre ele este mai bună decât cealaltă - fiecare scrie așa cum vrea, așa că puteți chiar să combinați cu ușurință aceste două abordări într-un singur scenariu.

Cu toate acestea, iată câteva beneficii ale OOP pentru dezvoltatori:

  • Este mai ușor să reflectați situații reale: așa cum am menționat mai sus, obiectele reflectă entități reale - oameni, produse, carduri, articole de blog etc. Acest lucru simplifică foarte mult sarcina atunci când abia începeți să vă proiectați aplicația, deoarece scopul fiecărui obiect. este ca un scop relațiile dintre obiecte vor fi clare și de înțeles.
  • Este mai ușor să scrieți programe modulare: OOP implică scrierea de module. Împărțind codul în module, vă va fi mai ușor să îl gestionați, să îl depanați și să îl extindeți.
  • Este mai ușor să scrieți cod care va fi folosit de mai multe ori: scrierea unui cod care poate fi folosit de mai multe ori va economisi timp la scrierea unei aplicații și, în timp, puteți chiar să creați o bibliotecă întreagă din aceste tipuri de module pe care le puteți utiliza în multe aplicatii. Cu ajutorul OOP, devine relativ mai ușor să scrieți un astfel de cod, deoarece structurile și funcțiile de date sunt încapsulate în un singur obiect, care poate fi folosit de orice număr de ori.

Câteva concepte de bază

Înainte de a începe să scrieți scripturi, trebuie să înțelegeți bine conceptele de clasă, obiect, variabilă de clasă și metodă.

Clasele

O clasă este un cadru pentru un obiect. Aceasta este o bucată de cod care definește:

  • Tipurile de date pe care le vor conține obiectele de clasă create
  • Funcții care vor conține aceste obiecte.

Când creați o aplicație OOP, de obicei veți crea mai multe clase care vor reprezenta diverse tipuri entitățile aplicației dvs. De exemplu, pentru a crea un forum, puteți crea clasele Forum, Topic, Post și Member.

Obiecte

Obiectul este o variabilă tip special, care este creat prin clasă. Conține date reale și funcții de manipulare. Puteți crea câte obiecte doriți dintr-o singură clasă. Fiecare funcție a unui obiect este independentă de alt obiect, chiar dacă sunt create din aceeași clasă.

Pentru comparație cu entități reale:

  • O clasă este cadrul pentru o mașină: definește cum va arăta și acționa mașina, dar este totuși o entitate abstractă
  • Un obiect este o mașină reală creată dintr-un cadru: are proprietăți reale (cum ar fi viteza) și comportament (cum ar fi accelerația sau frânarea).

Notă: Un obiect este adesea numit esența unei clase, iar procesul de creare a unui obiect al unei clase se numește implementare.

Variabile de clasă

Valorile datelor care sunt stocate într-un anumit obiect sunt scrise în variabile speciale numite variabile de clasă. Variabilele de clasă sunt strâns asociate cu obiectul său. Chiar dacă toate obiectele unei clase au aceleași variabile, valorile lor pot diferi.

Metode

Funcțiile definite într-o clasă și utilizate pe obiectele acelei clase sunt numite metode. Nu sunt foarte diferite de funcțiile obișnuite - le puteți transmite valori, pot conține variabile locale și pot returna valori. Cu toate acestea, metodele funcționează mai des cu variabile obiect. De exemplu, metoda login() pentru conectarea utilizatorilor în forumul dvs. ar putea seta variabila de clasă loggedIn la true.

Cum se creează o clasă în PHP?

Acum că știți deja ce sunt clasele, metodele, variabilele de clasă și obiectele, este timpul să creați câteva clase și obiecte în cod PHP.

În primul rând, să vedem cum să creăm de fapt o clasă. Practic, scriptul pentru crearea unei clase arată astfel:

Class ClassName ( // (definiția clasei) )

De exemplu, dacă creați o clasă de membru pentru forumul dvs., ați scrie asta:

Membru al clasei ( // (definiția clasei) )

Este destul de simplu. Desigur, această clasă nu va face nimic până când nu adăugați variabile și metode la ea. Cu toate acestea, codul de mai sus creează o clasă PHP validă care poate fi utilizată.

Regula bunelor maniere: plasează fiecare clasă în dosar separat cu același nume cu numele clasei. De exemplu, puneți clasa Member în fișierul Member.php și stocați-o într-un folder, să zicem, clase.

Cum se creează obiecte în PHP?

Puteți crea un obiect folosind cuvântul cheie nou:

Nou ClassName()

Acest cod va crea un obiect din clasa ClassName. Va trebui să utilizați acest obiect mai târziu, așa că trebuie să îl stocați într-o variabilă. De exemplu, să creăm un obiect al clasei Member și să-l stocăm în variabila $member:

$member = membru nou();

De asemenea, putem crea un alt obiect din aceeași clasă:

$member2 = membru nou();

Chiar dacă am creat aceste două obiecte din aceeași clasă, variabilele $member și $member2 sunt independente una de cealaltă.

Creați variabile de clasă

Acum că știm deja cum să creăm clase și obiecte de clasă, să ne uităm la cum să creăm variabile de clasă. Există 3 accesorii pentru variabilele de clasă care pot fi adăugate la o clasă:

  • Variabile de clasă publică (publice): accesibile - i.e. pot fi citite și/sau modificate - oriunde în script, indiferent de locul în care se află acest cod - în interiorul clasei sau în afara acesteia
  • Variabile de clasă privată (private): accesibile numai metodelor de clasă. Cel mai bine este să faceți variabilele de clasă private pentru a separa obiectele de restul codului.
  • Variabile de clasă protejată: disponibile pentru metodele propriei clase, precum și pentru metodele claselor moștenite (vom vorbi mai târziu despre moștenire).

Pentru a crea o variabilă de clasă, scrieți cuvântul cheie public, private sau protected, apoi introduceți numele variabilei:

Clasa ClassName ( public $propertyName; privat $propertyName; protejat $propertyName; )

Să adăugăm o variabilă de clasă publică la clasa noastră Member pentru a stoca numele de utilizator:

Membru al clasei ( public $username = ""; )

Observați că am inițializat variabila noastră de clasă, valoarea acesteia este șirul gol, „”. Aceasta înseamnă că atunci când un utilizator nou este creat, valoarea implicită a numelui va fi egală cu linie goală. La fel ca și în cazul variabilelor obișnuite în PHP, variabilele de clasă nu trebuie să fie inițializate, dar este mai bine să nu fii leneș. Dacă nu inițializați o variabilă de clasă, valoarea implicită a acesteia este nulă.

Accesarea variabilelor de clasă

Pentru a obține acces la o variabilă a unui obiect, utilizați operatorul ->:

$object->propertyName

Să încercăm. Să scriem un script care declară o clasă Membru și o variabilă de clasă, creează un obiect al acestei clase și apoi setează valoarea variabilei de clasă și o afișează pe ecran:

nume utilizator = "Fred"; echo $member->nume utilizator; // Tipăriți „Fred” ?>

Fugi acest cod, va afișa șirul „Fred”, valoarea variabilei de clasă $member->username. După cum puteți vedea, operați pe o variabilă obiect la fel ca o variabilă obișnuită - o puteți seta la o valoare și o puteți citi.

Adăugarea de metode la o clasă

Dar crearea de metode? După cum am menționat mai devreme, metodele sunt doar funcții obișnuite care fac parte dintr-o clasă. Deci, s-ar putea să nu fiți surprins că acestea sunt create folosind același cuvânt cheie pentru funcție. Singura diferență față de crearea de funcții obișnuite este că puteți adăuga și unul dintre identificatorii de acces (public, privat, protejat) la declarația acestuia. În acest fel, metodele sunt similare cu variabilele de clasă:

Clasa ClassName (funcție publică methodName() ( // (cod) ) funcție privată methodName() ( // (cod) ) funcție protejată methodName() ( // (cod) ) )

Notă: la fel ca și în cazul variabilelor de clasă, metodele publice pot fi apelate de oriunde, metodele private pot fi apelate doar în cadrul clasei, iar metodele protejate pot fi apelate din clasa însăși și descendenții acesteia.

Să încercăm să adăugăm câteva metode și variabile de clasă la clasa noastră:

  • variabilă privată de clasă $loggedIn pentru a identifica utilizatorul, de ex. indiferent dacă a intrat sau nu,
  • metoda login(), care se va autentifica în forum setând variabila de clasă $loggedIn la true,
  • metoda logout(), care se va deconecta din forum prin setarea variabilei clasei $loggedIn la false,
  • isLoggedIn(), care va returna valoarea variabilei clasei $loggedIn.

Iată codul nostru:

loggedIn = adevărat;

) funcția publică logout() ( $this->loggedIn = fals; ) public function isLoggedIn() ( returnează $this->loggedIn; ) ) ?>

Poate ați observat că am folosit un nou cuvânt cheie $this. În contextul metodelor unui obiect, variabila specială $this se referă la obiectul însuși. Folosind $this într-o metodă obiect, metoda poate accesa orice variabilă de clasă și metodă a obiectului.

Apropo, variabila noastră de clasă este privată, deci nu poate fi apelată din nicio parte a scriptului, ci doar din metodele login(), logout() și isLoggedIn(). Aceasta este o abordare bună, deoarece elementele interne ale obiectului (cum ar fi modul în care înregistrează exact dacă utilizatorul este conectat sau nu) este separat de restul codului. Ori de câte ori este posibil, încercați să utilizați variabile de clasă privată, astfel încât obiectele dvs. să fie autonome, mobile și protejate.

Notă: variabila clasa $username din exemplul nostru este publică. Am făcut asta doar pentru a demonstra cum puteți accesa variabilele clasei unui obiect. În proiectele reale, preferați să faceți această variabilă privată și să creați variabile speciale de clasă publică pentru a seta valorile numelui de utilizator, dacă este necesar.

Utilizarea Metodelor

Pentru a apela o metodă pe un obiect, utilizați operatorul ->, cu care v-ați familiarizat deja.

$object->methodName()

Acest lucru funcționează la fel ca apelarea unei funcții obișnuite. Puteți trece argumente în paranteze (presupunând, desigur, că sunt necesare unele argumente), apelul la metodă poate returna și anumite valori, pe care apoi îl puteți folosi.

loggedIn = adevărat;
) funcția publică logout() ( $this->loggedIn = false; ) public function isLoggedIn() ( return $this->loggedIn; ) ) $member = new Member(); $member->username = "Fred"; echo $member->nume utilizator . „este”. ($membru->
"; $member->login(); echo $member->nume utilizator . " este " . ($member->isLoggedIn() ? "conectat": "deconectat") ."
"; ?>

"; $member->logout(); echo $member->nume utilizator . " este " . ($member->isLoggedIn() ? "conectat": "deconectat") ."

Acest script va afișa următoarele:

Fred este deconectat Fred este conectat Fred este deconectat

  1. Iată cum funcționează:
  2. După ce am descris clasa Member, am creat obiectul acesteia și l-am stocat în variabila $member. De asemenea, am dat variabilei de clasă $username a acestui obiect valoarea „Fred”.
  3. Apoi am apelat metoda $member->isLoggedIn() pentru a determina dacă utilizatorul este conectat sau nu. Această metodă returnează pur și simplu valoarea variabilei clasei $loggedIn. Deoarece valoarea implicită a acestei variabile de clasă este falsă, rezultatul apelării $member->isLoggedIn() va fi fals, așa că va fi afișat mesajul „Fred este deconectat”.
  4. Apoi numim metoda login(). Acesta va seta variabila de clasă $loggedIn la adevărat.
  5. Să apelăm metoda logout(), care setează valoarea proprietății $loggedIn la false.
  6. Să apelăm metoda $member->isLoggedIn() a treia oară. Acum va returna false deoarece proprietatea $loggedIn este setată din nou la false. Deci, mesajul „Fred este deconectat” va fi afișat din nou.

Notă: în cazul în care ați văzut asta mai întâi: ?: este un operator ternar. Aceasta este o versiune simplificată a blocurilor if...else. Puteți afla despre aceste tipuri de operatori.

Concluzii

În acest tutorial ați învățat elementele de bază ale OOP în PHP. Ați învățat despre lucruri precum:

  • Ce este OOP și de ce este util?
  • concepte de clase, obiecte, variabile de clasă și metode
  • cum se creează clase și obiecte
  • cum să creați și să utilizați variabilele de clasă
  • concepte de identificatori de acces public, privat, protejat
  • cum să creați și să utilizați metodele de clasă

Ați învățat deja multe despre el și veți învăța multe mai multe în lecțiile următoare. Cu toate acestea, dacă ați analizat toate exemplele pe care le-am dat, aveți o bază solidă. Puteți începe să creați aplicații folosind OOP.