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