Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 03.08.2011, 17:34   #1
romantik2011
Форумчанин
 
Регистрация: 20.07.2011
Сообщений: 70
Репутация: 3
По умолчанию Поиск неизвестного свойства функцией __set()

PHP код:
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, которая была объявлена как приватное свойство в классе, как она могла превратится в массив если она была объявлена как обычное закрытое свойство?
PHP код:
function __set($n,$v){
         
$this->user[$n] = $v;
    } 
В этом месте кода, если функция __get() вызывается только в том случаи когда была вызвана функция __set() и в функцию __get()
передаётся значение свойства, то значение, которое попало в __set(). Как снова туда может лететь массив ,если функция ГЭТ принимает только свойство класса?
PHP код:
function __get($n){
    return 
$this->user[$n];
    } 
romantik2011 вне форума   Ответить с цитированием
Старый 04.08.2011, 08:46   #2
mv28jam
Профессионал
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Адрес: РФ, Московская обл.
Сообщений: 2,755
Репутация: 1175
По умолчанию

Цитата:
как она могла превратится в массив если она была объявлена как обычное закрытое свойство?
Цитата:
Как снова туда может лететь массив ,если функция ГЭТ принимает только свойство класса?
Вырайте свои мысли ясно и понятно! Вы уже лезете в ООП, хотя даже в общих понятиях путаетесь!
__________________
Стрелок-охотник
mv28jam вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск символа в массиве символов функцией c++ firephenix Помощь студентам 13 20.07.2011 20:49
__set __get И наследие классов. Jakethefish PHP 2 30.06.2011 14:08
запрос из зараннее неизвестного колл - ва таблиц Valerra Помощь студентам 3 28.01.2009 12:02
Таблица заранее неизвестного размера в Basic.net byte916 Помощь студентам 1 02.04.2008 02:38


10:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.