Не понимаю финта с __get()

Beckie

Новичок
Не понимаю финта с __get()

PHP:
$сdata = $card->data - ошибочное обращение к несуществующей переменной объекта.

public function __get($name)
  {
     if ($name == 'data')
     {
        if(флаг тру) {return настоящую переменную с данными}
     }
  }
Выглядит, как дополнительный финт для безопасности, но смысл этого не понимаю.

Единственное предположение - чтобы вытащить из private переменной данные, так как прямое обращение к ней невозможно.
Если не прав, то может кто объяснит мне зеленому орку? :)
 

iamFake

Mind Of Liberty
Re: Не понимаю финта с __get()

PHP:
class SomeData {
   protected $_VARS = array(); // read only параметры
...
   public function __get($N)
   {
      if(isset($this->_VARS[$N])) return $this->_VARS[$N];
      return false;
   }
}
$Data = new SomeData();
...
if($Data->PageFlag)
{
    echo "Variable 'PageFlag' is present";
}
...
пример как я использую геттер в одном из случаев... для меня удобней if($Data->PageFlag) чем if($Data->_VARS['PageFlag']), темболее что еще и read-only возможно эмулировать
 
Сверху