Читање непостојећег својства у ООП у PHP-у
Хајде да покушамо да упишемо податке у непостојеће својство - ово ће радити:
<?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;
}
}
?>