⊗ppOpBsGSA 14 of 107 menu

ნეტთერების და გეთერების უპირატესობები OOP-ში PHP-ში

წინა გაკვეთილზე ჩვენ თითოეული თვისებისთვის გეთერი და ნეტთერი გავაკეთეთ. შეიძლება გაჩნდეს კითხვა, რატომ არის საჭირო ასეთი სირთულეები, როდესაც ფაქტობრივად იგივე ეფექტის მიღწევა შეიძლება, თუ თვისებები საჯაროს გავხდით, და არა პრივატულს.

საქმე ისაა, რომ გეთერებს და ნეტთერებს აქვთ უპირატესობა: თვისებაზე მიმართვამდე შესაძლებელია გარკვეული შემოწმებების ჩატარება. მაგალითად, ჩვენს შემთხვევაში, სახელისა და გვარის ჩაწერისას შეგვიძლია შევამოწმოთ, რომ ახალი მნიშვნელობა არ არის ცარიელი სტრიქონი:

<?php class User { private $name; private $surn; public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'name is incorrect'; } } public function setSurn($surn) { if (strlen($surn) > 0) { $this->surn = $surn; } else { echo 'surn is incorrect'; } } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

შევამოწმოთ, როგორ მუშაობს ეს. პირველ რიგში, შევქმნათ კლასის ობიექტი:

<?php $user = new User(); ?>

ახლა ვცადოთ კორექტული მნიშვნელობის ჩაწერა:

<?php $user->setName('john'); ?>

და ახლა ვცადოთ არაკორექტული მნიშვნელობის ჩაწერა:

<?php $user->setName(''); // შეცდომა ?>

Employee კლასის ასაკის ნეტთერში გააკეთეთ შემოწმება, რომ ასაკი უნდა იყოს 0-დან 120-მდე.

Employee კლასის ხელფასის გეთერში გააკეთეთ ისე, რომ ხელფასის წაკითხვისას მისი მნიშვნელობის ბოლოს დოლარის ნიშანი დაემატოს.

azbydeenesfrkakkptruuz