Ответ
Константин Моршнев 16.12.2002 19:45
С точки зрения стандартных реализаций объектно-ориентированного программирования переменная $table должна быть
декларирована в классе base_class (с "строгих" языках была бы просто ошибка, поскольку такого поля у объекта нет).
В приведенном примере такой декларации [точнее парсерного эквивалента - инициализации] не было, поэтому то, что этот код работал
раньше было скорее особенностью реализации.
Если я правильно понимаю, достаточно в конструкторе базового класса переменную "задекларировать" - сказать $table[]. По-моему это логично - если следовать традициям обычных языков, конструктор (он в данном случае играет роль и описания структуры объекта) должен начинаться с декларации переменных/полей объекта с комментариями чего и зачем ...