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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> final и динамические аттрибуты 
:(
    Опции темы
Kallisto
Дата 31.8.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 20.4.2007

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



Интересует такой вопрос.

РНР имеет кейворд final, который запрещает наследовать класс или переопределять метод.
В тоже время РНР поддерживает динамические атрибуты.

Возникает вопрос почему класс, который объявлен как final так же можно делать дин. атрибуты? 
PM MAIL   Вверх
NewDima
Дата 31.8.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



Ммм, под динамическими атрибутами вы понимаете свойства класса, для установки которых вызываются магические методы __set(get)?
Так как по вашему связана установка динамических свойств (которая происходит в рантайме) с невозможностью наследоваться от класса?
PM ICQ   Вверх
solenko
Дата 31.8.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(NewDima @  31.8.2009,  18:45 Найти цитируемый пост)
Ммм, под динамическими атрибутами вы понимаете свойства класса, для установки которых вызываются магические методы __set(get)?

думаю имелись в виду просто:
Код

$obj - new stdClass();
$obj->test = 'test';



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Kallisto
Дата 1.9.2009, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 20.4.2007

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



Ну используя final мы передаем программисту класс который имеет фиксированный набор методов которые нельзя поменять.. то есть поведение класса четко определенно. А тут получается используя дин. атрибуты экземпляр класса может иметь разные свойства...мне кажется это немного не верно.. Если final то final...
может я ошибаюсь? 
PM MAIL   Вверх
IZ@TOP
Дата 1.9.2009, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Kallisto, Вы действительно ошибаетесь. Свойство final говорит о том, что мы не можем наследовать класс или переопределять методы. Т.е. подразумевается, что класс или метод является конечной точкой в реализации задуманной разработчиком системы. И наоборот - "динамическое" создание переменных ни коим образом не противоречит данной концепции: это исключительно свойство языка. Вы все равно не сможете вмешаться в конечную логику приложения, вы лишь будете необдуманно использовать возможности среды.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Kallisto
Дата 1.9.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 20.4.2007

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



Да это понятно что вмешаться не получится никоим образом..
но получается что final класс который по логике является последним и окончательным может иметь случайное количество атрибутов. 
PM MAIL   Вверх
IZ@TOP
Дата 1.9.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Kallisto, это не случайное количество атрибутов, это специфика языка, которая позволяет такое делать. Определи метод __set и возвращай из него эксепшн в случае попытки записать несуществующие поля.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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