Имеется класс Table, объект которого содержит несколько protected полей, являющимися объектами класса Field.
Конструкция
class Table {
protected f1 = new Field();
}
не прокатывает.
Можно создание объектов поместить в конструктор
<?php
class Table {
protected f1, f2;
function __construct(){
$this->f1 = new Field();
$this->f2 = new Field();
}
}?>
Но в этом случае возникает две трудности:
1. Необходимо дублировать все поля типа Field сначала в начале класса после слова protcted, а затем в конструкторе. При добавлении, изменении полей, постоянно забываешь одно из двух мест. Неудобно.
2. Если у класса Table есть наследники, то нужно принудительно вызывать конструктор родительского класса, да ещё и так чтобы все действия с полями типа Field происходили после вызова этого конструктора. Неудобно.
Может я что-то делаю не так, поясните, пожалуйста. Может есть более простое решение?