Klassi eraomandi väärtusele juurdepääsu saamiseks peame mõistma objektorienteeritud programmeerimise kapseldamise kontseptsiooni. Kapseldamine on aluspõhimõte, mis võimaldab meil kontrollida juurdepääsu klassi liikmetele, nagu atribuudid ja meetodid. PHP-s saame kapseldamise saavutada juurdepääsu modifikaatorite abil.
PHP-s on meil kolm juurdepääsu muutjat: avalik, kaitstud ja privaatne. Avalikele omadustele ja meetoditele pääseb juurde kõikjalt, samas kui kaitstud atribuutidele ja meetoditele pääseb juurde ainult klassis endas või selle alamklassides. Privaatsete atribuutide ja meetodite juurde pääseb seevastu ainult selles klassis, kus need on määratletud.
Klassi eraomandi väärtusele juurdepääsu saamiseks kasutame tavaliselt getter- ja setter-meetodeid. Getteri meetod vastutab eraomandi väärtuse leidmise eest, samas kui setter meetodit kasutatakse eraomandi väärtuse värskendamiseks. Vaatame näidet:
php class MyClass { private $myPrivateProperty; public function getMyPrivateProperty() { return $this->myPrivateProperty; } public function setMyPrivateProperty($value) { $this->myPrivateProperty = $value; } } $obj = new MyClass(); $obj->setMyPrivateProperty('Hello, World!'); echo $obj->getMyPrivateProperty(); // Output: Hello, World!
Ülaltoodud näites on meil klass nimega "MyClass", mille privaatsus on "$myPrivateProperty". Oleme defineerinud getteri ja seadja meetodid ("getMyPrivateProperty" ja "setMyPrivateProperty"), et pääseda juurde ja muuta vastavalt privaatomandi väärtust.
Eraomandile juurdepääsuks loome klassi eksemplari (`$obj`) ja kasutame väärtuse määramiseks setter-meetodit (`setMyPrivateProperty`). Seejärel kasutame väärtuse hankimiseks ja väljundisse kajamiseks getteri meetodit ("getMyPrivateProperty").
Kasutades getter ja setter meetodeid, saame kontrollida, kuidas eraomandile juurde pääseb ja seda muudetakse. Saame nendesse meetoditesse lisada täiendavat loogikat või valideerimist, et tagada atribuudile õige juurdepääs ja selle muutmine.
Oluline on märkida, et privaatsete atribuutide otsene juurdepääs väljaspool klassi ulatust pole soovitatav, kuna see rikub kapseldamise põhimõtet. Kapseldamine aitab säilitada klassi terviklikkust ja järjepidevust, kontrollides juurdepääsu selle sisemisele olekule.
Klassi eraomandi väärtusele juurdepääsu saamiseks saame kasutada getteri ja setteri meetodeid. Need meetodid tagavad kontrollitud juurdepääsu privaatvaradele ning võimaldavad meil nende väärtusi hankida ja muuta. Kapseldamise ja juurdepääsu modifikaatorite abil saame tagada oma klasside terviklikkuse ja järjepidevuse.
Muud hiljutised küsimused ja vastused selle kohta Klassid ja objektid PHP-s:
- Milline on soovitatav lähenemine klassi omadustele juurdepääsuks ja nende muutmiseks?
- Kuidas saame klassis eraomandi väärtust värskendada?
- Mis kasu on getterite ja setterite kasutamisest klassis?
- Mis on klassis vara privaatseks muutmise eesmärk?
- Mis on PHP klassides konstruktorfunktsioon ja mis on selle eesmärk?
- Mis on meetodid PHP klassides ja kuidas me saame nende nähtavust määratleda?
- Mis on atribuudid PHP klassides ja kuidas me saame nende nähtavust määratleda?
- Kuidas luua PHP klassist objekti?
- Mis on PHP klass ja mis eesmärki see teenib?