PHP'de OOP'de Olmayan Özelliği Okuma
Var olmayan bir özelliğe veri yazmayı deneyelim - bu çalışacaktır:
<?php
$test = new Test;
$test->prop3 = 3; // 3 yazalım
echo $test->prop3; // 3 yazdıracak
?>
Diyelim ki var olmayan özelliklere yazmaya izin
vermek istemiyoruz. Ve genel olarak, sadece
prop1 ve prop2 özelliklerine
yazmaya izin vermek istiyoruz.
Bunu yapmak kolaydır - __set yönteminde
ilgili koşulu eklemek yeterlidir:
<?php
class Test
{
private $prop1;
private $prop2;
public function __set($property, $value)
{
// Bir koşul yazalım:
if ($property == 'prop1' or $property == 'prop2') {
$this->$property = $value;
}
}
public function __get($property)
{
return $this->$property;
}
}
?>
Eğer bu tür çok sayıda özellik varsa, hepsini koşulda listelemek pek uygun değildir.
Yazmaya izin verilen özellikleri bir dizide
yazalım ve in_array işlevini kullanarak
özelliğin bu dizide olup olmadığını
kontrol edelim:
<?php
class Test
{
private $prop1;
private $prop2;
public function __set($property, $value)
{
$properties = ['prop1', 'prop2']; // izin verilen özellikler
if (in_array($property, $properties)) {
$this->$property = $value;
}
}
public function __get($property)
{
return $this->$property;
}
}
?>