Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск неизвестного свойства функцией __set()
 
 автор: romantik2011   (03.08.2011 в 17:39)   письмо автору
 
 


class A{
    public $user;
    
    function __set($n,$v){
        $this->user[$n] = $v;
    }
    function __get($n){
    return $this->user[$n];
    }
}

$o = new A();
$o->name = "John";
echo $o->name;


Результат: John
]
Когда интепретатор PHP увидел в коде что мы обращаемся к неизвестному свойству, он обратился в класс, с надеждой найти функцию __set()
Эта функция имеет 2 параметра: 01)Название свойства; 02)Значение свойства.

В этом месте кода, как переменная $user, которая была объявлена как приватное свойство в классе, как она могла превратится в массив если она была объявлена как обычное закрытое свойство?

function __set($n,$v){
        $this->user[$n] = $v;
    }

В этом месте кода, если функция __get() вызывается только в том случаи когда была вызвана функция __set() и в функцию __get()
передаётся значение свойства, то значение, которое попало в __set(). Как снова туда может лететь массив ,если функция ГЭТ принимает только свойство класса?

function __get($n){
    return $this->user[$n];
    }

  Ответить  
 
 автор: MHz   (03.08.2011 в 18:58)   письмо автору
 
   для: romantik2011   (03.08.2011 в 17:39)
 

Вообще ни фига не понял %) В чем заключается проблема?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования