Здравствуйте!
Есть два класса - «Поле» и «Набор полей». В классе «Набор полей» есть массив (свойство), в котором лежат несколько объектов «Поле». Примерно так:
class field
{
private $name='';
private $value='';
function set_name($name){$this->name=$name;}
function set_value($value){$this->value=$value;}
}
...
#include field.php
class field_collection
{
$fields=array();
function add_field($name, $value)
{
$field=new field();
$field->set_name($name);
$field->set_value($value);
$this->fields=$this->fields+$field;
}
function get_math_fields_list()
{
...
}
}
И нужно мне иметь возможность вызвать из объекта класса field метод get_math_fields_list() вышестоящего объекта field_collection. Вопрос - как это сделать?
Мне на ум приходит только создание в классе field дополнительного свойства, типа $referece_to_field_collection. И дописывать код, чтобы каждому объекту field в конструкторе передавалась ссылка на «вышестоящий» класс. Но как-то все это извратно, можно ли сделать по-другому, просто вызвать метод в классе, стоящим «вверху» по компоновке?