privat, protejat și public
În PHP 5, ordinea de definire și modul în care clasele sunt utilizate nu s-au schimbat semnificativ. De fapt, codul din listele 1 va funcționa în PHP 5 conform așteptărilor. Cu toate acestea, această metodă de definire a clasei nu mai este aplicată. Lista 3 arată o nouă versiune a definiției clasei pe care am examinat-o în exemplul anterior.
Diferența constă în utilizarea unei noi caracteristici importante în modelul de orientare a obiectelor PHP 5 - controlul accesului.
În PHP 4, nu există niciun concept de control al accesului în interiorul obiectelor. În cazul în care un dezvoltator terț utilizat clasa myPHP4Class poate fi liber pentru a modifica sau de a citi valoarea $ my_variable variabila. Pe de altă parte, în PHP 5 Object Model prevede trei niveluri de acces la membrii clasei care restricționează datele care pot fi recuperate în scenariile. Aceste niveluri sunt publice, private și protejate; ele pot fi aplicate atât la metode, cât și la proprietăți ale clasei, așa cum se arată în Lista 3.
Pentru membrii unei clase care sunt declarate ca public, accesul poate fi făcut de oriunde în scenariu. Cu ajutorul obiectului, ele pot fi numite sau modificate fie din interiorul obiectului, fie din afara lui. În schimb, accesul la membrii unei clase care au fost declarate private (privat) poate fi făcut numai dintr-o instanță din această clasă folosind variabila $ this. Uitați-vă la modificarea codului din Lista 4, comparativ cu codul din listare 3.
Dacă creați o instanță a myPHP5Class, când accesați proprietatea $ my_variable din afara obiectului, primiți o eroare PHP:
Dacă executați codul anterior, primiți următorul mesaj de eroare:
Se numește metoda my_method (MyParam)!
Valoarea variabilei interne:
Eroare fatală: Nu pot accesa proprietatea privată myPHP5Class :: $ my_variable în.
(Eroare nerecuperabilă: Nu puteți accesa proprietatea privată myPHP5Class :: my_variable.)
Cel de-al treilea și ultimul nivel de acces în PHP este protejat. Acest nivel este similar celui privat, deoarece interzice accesul extern la un membru al clasei. Cu toate acestea, spre deosebire de nivelul de restricționare a accesului privat, numai la clasa în care este definit, nivelul protejat permite accesul la ambele sine și a tuturor claselor de copii. Mai multe detalii despre clasele de copii și moștenirea vor fi discutate în secțiunea „Clasa de moștenire“, mai târziu în acest ghid.