PHP klassis oleva eraomandi väärtuse värskendamiseks peame kasutama getteri ja setteri meetodeid. Privaatsed atribuudid ei ole väljaspool klassi otseselt juurdepääsetavad, seega peame nende väärtuste muutmiseks määratlema klassis avalikud meetodid.
Esiteks vaatleme lihtsat klassi nimega "Isik", millel on eraomand nimega "nimi":
class Person { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } }
Ülaltoodud näites on privaatsus "$nimi" juurdepääsetav ainult klassis endas. Selle väärtusele juurdepääsuks ja selle muutmiseks oleme määratlenud kaks avalikku meetodit: "getName()" ja "setName($name)".
Meetod „getName()” on getterimeetod, mis tagastab eraomandi „$name” väärtuse. See ei muuda väärtust, kuid võimaldab meil seda hankida.
Meetod „setName($name)” on seadistusmeetod, mis võtab argumendi „$name” ja määrab selle eraomandile „$name”. See võimaldab meil värskendada eraomandi väärtust väljastpoolt klassi.
Siin on näide selle kohta, kuidas saame kasutada neid getter- ja settermeetodeid eraomandi väärtuse värskendamiseks:
$person = new Person(); $person->setName("John Doe"); echo $person->getName(); // Output: John Doe $person->setName("Jane Smith"); echo $person->getName(); // Output: Jane Smith
Ülaltoodud näites loome klassi "Person" uue eksemplari ja määrame nime meetodi "setName()" abil. Seejärel hangime värskendatud nime, kasutades meetodit „getName()” ja kuvame selle.
Kasutades getter ja setter meetodeid, saame tagada, et klassi privaatsustele omadustele pääseb juurde ja neid muudetakse kontrollitud viisil. See kapseldamine aitab säilitada klassi terviklikkust ja takistab privaatsete omadustega otsest manipuleerimist väljastpoolt klassi.
PHP klassis oleva eraomandi väärtuse värskendamiseks peame määratlema klassis avalikud getteri ja setteri meetodid. Getteri meetod hangib välja eraomandi väärtuse, settermeetod aga võimaldab meil selle väärtust muuta. Neid meetodeid kasutades saame eraomandit kontrollitult uuendada.
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?
- Mis kasu on getterite ja setterite kasutamisest klassis?
- Kuidas saaksime klassis juurde pääseda eraomandi väärtusele?
- 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?