PHP-তে 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<?php
  $user = new User();
?>

এখন আসুন লিখতে চেষ্টা করি সঠিক মান:

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

এবং এখন আসুন লিখতে চেষ্টা করি ভুল মান:

php<?php
  $user->setName(''); // error
?>
Задание 1

Employee ক্লাসে সেটারে বয়সের জন্য এমন একটি চেক করুন, যে বয়স হতে হবে 0 থেকে 120 পর্যন্ত।

Задание 2

Employee ক্লাসে গেটারে বেতন এমনভাবে করুন, যাতে বেতন পড়ার সময় এর মানের শেষে ডলারের চিহ্ন যোগ হয়।