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;
    }
  }
?>