parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

о проблеме наследования от системных классов: нельзя сохранить ряд свойств

Александр Петросян (PAF) 23.06.2003 10:33 / 23.06.2003 10:33

изменить self, конечно, нельзя.
иметь hash в качестве базового неудобно: дело в том, что в базовом перезапишутся только те переменные, которые там уже есть, остальные будут помещены в наследника. причём по ним не будет ходить foreach.

вариант: можно работать с $BASE:имя_поля

мысли:
я уже думал о предоставлении пользовательскому классу возможности определить операции чтения/записи своих элементов, а также операции преобразования себя в число(^eval($table)=^table.count[]) и в строку ($integer=строчное представление).

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

диагноз:
если хотите свой ассоциативный массив с заданными свойствами, сделайте его. но не наследуйте от системного класса, и пользуйтесь методами get/put для работы с ним.