xintrea
Новичок
Как обратиться к вышестоящему классу?
Здравствуйте!
Есть два класса - "Поле" и "Набор полей". В классе "Набор полей" есть массив (свойство), в котором лежат несколько объектов "Поле". Примерно так:
И нужно мне иметь возможность вызвать из объекта класса field метод get_math_fields_list() вышестоящего объекта field_collection. Вопрос - как это сделать?
Мне на ум приходит только создание в классе field дополнительного свойства, типа $referece_to_field_collection. И дописывать код, чтобы каждому объекту field в конструкторе передавалась ссылка на "вышестоящий" класс. Но как-то все это извратно, можно ли сделать по-другому, просто вызвать метод в классе, стоящим "вверху" по компоновке?
Здравствуйте!
Есть два класса - "Поле" и "Набор полей". В классе "Набор полей" есть массив (свойство), в котором лежат несколько объектов "Поле". Примерно так:
Код:
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 дополнительного свойства, типа $referece_to_field_collection. И дописывать код, чтобы каждому объекту field в конструкторе передавалась ссылка на "вышестоящий" класс. Но как-то все это извратно, можно ли сделать по-другому, просто вызвать метод в классе, стоящим "вверху" по компоновке?