Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение атрибутов класса 
:(
    Опции темы
MystDeim
Дата 9.11.2007, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

Репутация: нет
Всего: нет



У меня создаются 2 объекта  класса, из второго класса я пытаюсь изменить атрибут первого, но ничего не происходит...
приведу пример:

Код

a = new class1;
b = new class2;


Код

class class1 {
    public $x; // Вот этот атрибут
    // Тут какое-то описание класса
}

Код

class class2 {
    // Тут какое-то описание класса
    function __construct() {
    $a->x = "значение";
    }
    // Тут какое-то описание класса
}


ОПП не так давно начал изучать, может чего-то не знаю, разъясните, пожалуйста.
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
Sannis
Дата 9.11.2007, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Прочитайте про инструкцию global.


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
skyboy
Дата 9.11.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



кроме global можно предложить и другое решение: инкапсулировать объект класса class1 в объекте класса class2.
Код

class class1 {
    public $x; // Вот этот атрибут
    // Тут какое-то описание класса
}
class class2 {
    // Тут какое-то описание класса
    protected $aa;
    function __construct($_aa) {
    $aa= $_aa;
    $aa->x = "значение";
    }
    // Тут какое-то описание класса
}
$a= new class1();
$b= new class2($a);
 
Кстати/, у тебя при переносе на форум из выражения типа "$a= new class1()" пропали скобки при функции-конструкторе и знак "$" возле имени переменной?

Добавлено через 22 секунды
Цитата(skyboy @  9.11.2007,  09:21 Найти цитируемый пост)
инкапсулировать 

поправка: агрегировать
PM MAIL   Вверх
MystDeim
Дата 9.11.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

Репутация: нет
Всего: нет



skyboy, спасибо, не знал что так можно.

Добавлено через 8 минут и 10 секунд
Цитата

Кстати/, у тебя при переносе на форум из выражения типа "$a= new class1()" пропали скобки при функции-конструкторе и знак "$" возле имени переменной?


знак "$" почему-то исчез при копирование, может и сам забыл поставить, а скобки при описании класса, если у него нет аргументов можно же опускать!
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0808 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.