PHP-তে OOP-তে অস্তিত্বহীন বৈশিষ্ট্য পড়া
আসুন একটি অস্তিত্বহীন বৈশিষ্ট্যে ডেটা লিখতে চেষ্টা করি - এটি কাজ করবে:
<?php
$test = new Test;
$test->prop3 = 3; // 3 লিখব
echo $test->prop3; // 3 আউটপুট করবে
?>
ধরুন আমরা অস্তিত্বহীন বৈশিষ্ট্যগুলিতে লিখতে অনুমতি দিতে চাই না।
এবং সাধারণভাবে, শুধুমাত্র prop1 এবং prop2 বৈশিষ্ট্যগুলিতেই
লেখা অনুমতি দিতে চাই।
এটি করা সহজ - __set পদ্ধতিতে সংশ্লিষ্ট শর্ত যোগ করাই যথেষ্ট:
<?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 ফাংশন ব্যবহার করে এই অ্যারেতে বৈশিষ্ট্যের উপস্থিতি
পরীক্ষা করি:
<?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;
}
}
?>