PHP-তে OOP-তে অস্তিত্বহীন বৈশিষ্ট্য পড়া

আসুন একটি অস্তিত্বহীন বৈশিষ্ট্যে ডেটা লিখতে চেষ্টা করি - এটি কাজ করবে:

index.php<?php
  $test = new Test;
  
  $test->prop3 = 3; // 3 লিখব
  echo $test->prop3; // 3 আউটপুট করবে
?>

ধরুন আমরা অস্তিত্বহীন বৈশিষ্ট্যগুলিতে লিখতে অনুমতি দিতে চাই না। এবং সাধারণভাবে, শুধুমাত্র prop1 এবং prop2 বৈশিষ্ট্যগুলিতেই লেখা অনুমতি দিতে চাই।

এটি করা সহজ - __set পদ্ধতিতে সংশ্লিষ্ট শর্ত যোগ করাই যথেষ্ট:

Test.php<?php
  class Test
  {
    private $prop1;
    private $prop2;
    
    public function __set($property, $value)
    {
      // একটি শর্ত লিখুন:
      if ($property == 'prop1' or $property == 'prop2') {
        $this->$property = $value;
      }
    }
    
    public function __get($property)
    {
      return $this->$property;
    }
  }
?>

যদি এইরকম অনেক বৈশিষ্ট্য থাকে, তবে শর্তে সেগুলিすべて তালিকাভুক্ত করা খুব সুবিধাজনক নয়।

আসুন লিখার জন্য অনুমোদিত বৈশিষ্ট্যগুলিকে একটি অ্যারেতে লিখি এবং in_array ফাংশন ব্যবহার করে এই অ্যারেতে বৈশিষ্ট্যের উপস্থিতি পরীক্ষা করি:

Test.php<?php
  class Test
  {
    private $prop1;
    private $prop2;
    
    public function __set($property, $value)
    {
      $properties = ['prop1', 'prop2']; // অনুমোদিত বৈশিষ্ট্য
      
      if (in_array($property, $properties)) {
        $this->$property = $value;
      }
    }
    
    public function __get($property)
    {
      return $this->$property;
    }
  }
?>