Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Объект в объекте на PHP>v5.3 [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Возможно ли реализовать многовложеность объектов
like_you
Отправлено: 29 Марта, 2012 - 14:43:15
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Июнь 2010  
Откуда: Харківська обл. с. Криштопівка


Помог: 0 раз(а)




caballero пишет:
память выделяется под ОБЪЕКТЫ а не под классы. Объекты не бывают дочерними или родительскими.

Согласен, я опечатался, и имел ввиду выделение памяти именно под объекты. По поводу родительских и дочерних объектов, учту, спасибо.
caballero пишет:

Цитата:
то вместо этого дочерний объект будет иметь несовсем понятный баласт, при обращении к которому ничего не происходит, причем этот баласт, похоже, будет в памяти иметь размер родительского класса

какой баласт? это будет тот же самый участок памяти

Хорошо, если это так, то получается что только при перегрузке свойств или методов в объекте созданном дочерним классом выделяется память для этих перегруженных свойств и методов?
В таком случае всё равно не понятно почему функция var_dump() объекта дочернего класса показывает абсолютно все свойства родительского класса вместе с закрытыми. То что var_dump() используется для отладки не объясняет зачем показывается там свойства, которые, типа ему не принадлежат.


-----
Створюю український хабр
 
 Top
caballero
Отправлено: 29 Марта, 2012 - 15:09:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Хорошо, если это так, то получается что только при перегрузке свойств или методов в объекте созданном дочерним классом выделяется память для этих перегруженных свойств и методов?

память выделяется для ОБЪЕКТА. какие там свойства не имеет значения кроме их размеров в байтах.

Цитата:
В таком случае всё равно не понятно почему функция var_dump() объекта дочернего класса показывает абсолютно все свойства родительского класса вместе с закрытыми.

понятно будет если разберешся чем клас от объекта отличается

Цитата:
То что var_dump() используется для отладки не объясняет зачем показывается там свойства, которые, типа ему не принадлежат.


кому ему? Если ты смотришь на объект дочернего класса то естественно он включает все от родительского. Декларация доступа в полям не имеет значения
в родительском классе может быть не private функция имеющая доступ к private переменной. Поэтому все члены родительского класса должны быть в инстанцируемом объекте


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
like_you
Отправлено: 29 Марта, 2012 - 15:45:24
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Июнь 2010  
Откуда: Харківська обл. с. Криштопівка


Помог: 0 раз(а)




Честно говоря я так и думал, что
caballero пишет:
..Декларация доступа в полям не имеет значения
в родительском классе может быть не private функция имеющая доступ к private переменной. Поэтому все члены родительского класса должны быть в инстанцируемом объекте

Спасибо, за пояснения!


-----
Створюю український хабр
 
 Top
like_you
Отправлено: 01 Апреля, 2012 - 21:14:47
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Июнь 2010  
Откуда: Харківська обл. с. Криштопівка


Помог: 0 раз(а)




Bio man пишет:
... В случае композиции делай аксессоры, они же методы доступа. Это конечно если я тебя правильно понял

Bio man, почитав некоторые статьи в интернете, увидел действительно - то что я добиваюсь получить очень похоже на композицию или это оно и есть, но я ещё слабо представляю как можно в РНР ее реализовать (читал о ней касательно других языков программирования).
Меня очень удивляет, что поиск по ключевым словам "композиция +php" в гугле не выдает ожидаемых ссылок. Я уже подумал, что тема композиции или ещё сырая для РНР, или она неоправдано сложна в реализации...
Не покажете простенького кода, в котором показано суть композиции на РНР?

(Отредактировано автором: 01 Апреля, 2012 - 21:15:42)



-----
Створюю український хабр
 
 Top
Bio man
Отправлено: 01 Апреля, 2012 - 21:36:10
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




like_you пишет:
"композиция +php"
Или агрегация. Почти тоже что и композиция, отличается только уровнем зависимости. Почитать об этом и многом другом можно в книжке "PHP. Объекты, шаблоны и методики программирования"
(Добавление)
Щас мне кажется, что тебе нужна ассоциация, т.к. в России не 1 область.
 
 Top
like_you
Отправлено: 07 Апреля, 2012 - 10:29:31
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Июнь 2010  
Откуда: Харківська обл. с. Криштопівка


Помог: 0 раз(а)




Вот! Наконец-то, вроди бы, нашел что искал Пространства имен.


-----
Створюю український хабр
 
 Top
caballero
Отправлено: 07 Апреля, 2012 - 10:53:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Вот! Наконец-то, вроди бы, нашел что искал Пространства имен.

вообще то оно и не пряталось. Достаточно было просто почитать чем 5.3 отличается от предыдушей версии


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB