Аналог методов read и write для property в delphi на php

Ruslan1979

Новичок
Аналог методов read и write для property в delphi на php

Решил освоить реализацию ООП на PHP
до этого мне в PHP всегда хватало обычного кода

вопрос уважаемым участникам форума:

Можно ли на php сделать чтобы при изменении значения какой либо public переменной экземпляра класса
вызывалась процедура с произвольным кодом, например изменяющая значения других переменных
(некий аналог методов read и write для property delphi)
 

Ruslan1979

Новичок
PHP:
<?
class PropTest 
{
  public $Connection;
  public $TempVar;
  function __get($Connection) 
    {
      echo "read";
    }
  function __set($Connection, $val)
    {
      echo "write";
      $this->TempVar = $val;      
    }
}

$PTEx = new PropTest();
$PTEx -> TempVar = 14;
$PTEx -> Connection = 28;
echo $PTEx -> Connection."<br>";
echo $PTEx -> TempVar."<br>";


?>
Приведенный выше код TempVar в 28 к сожалению не переопределяет
и наверное не должен судя по тому, что __get и __set согласно документации будут срабатывать только в том случае, если объект или наследуемый объект не содержат свойства или метода, к которому осуществляется доступ.
:(
http://www.php.net/manual/ru/language.oop5.magic.php
вроде посмотрел ничего полезного не нашел (может плохо искал конечно) :(
если не затруднит прошу элементарный примерчик
 

Ruslan1979

Новичок
Всем спасибо, разобрался
может кому будет полезно :)
PHP:
<? 
class PropTest  
{ 
  private $FConnection; 
  
  public $TempVar; 

   //$Connection аналог дельфовой проперти
  function __get($Connection)  
    { 
      echo "read<br>";
      return $this->FConnection; 
    } 
  function __set($Connection, $val) 
    { 
      echo "write<br>"; 
      $this->TempVar = $val;
      $this->FConnection = $val;      
    } 
} 

$PTEx = new PropTest(); 
$PTEx -> TempVar = 14; 
$PTEx -> Connection = 28; 
echo $PTEx -> Connection."<br>"; 
echo $PTEx -> TempVar."<br>"; 


?>
-~{}~ 10.04.08 13:03:

Поторопился

самое смешное что несколько пропертей так не обьявишь :(
 

phprus

Moderator
Команда форума
самое смешное что несколько пропертей так не обьявишь
Это еще почему? Ты внимательно читал http://ru2.php.net/manual/ru/language.oop5.overloading.php ? Если да, то ты должен был увидеть, что магическим методам первым параметром передается имя, которое является именем свойства к которому происходит обращение.
 
Сверху