Вопрос ООП и установка значения атрибута класса

Активист

Активист
Команда форума
Вопрос ООП и установка значения атрибута класса

Вообщем, вопрос в следующем.
Есть никий класс, назовем его класс "plugin_adminMenu", у которого есть атрибут "moduleInfo".
Так же есть файл "__info.php" в котором прописан один массив , назваем его $info, один из элементов которого
$info['admLinks']['ru'] = array("Название ссылки" => "Урл", "Название ссылки 2" => "Урл 2");

Нужно сделать следующее, без использования global и т.п.
Присвоить значение переменной $info атрибуту moduleInfo того класса, из которого было подключение файли __info.php, в то же время, массив $info не должен быть каким либо атрибутом другого класса, а являться обычной переменной.
 

hermit_refined

Отшельник
интересно, чем вам при таких структурах, порождаемых вашим воображением, мешает global?..
(а ответа не будет, т.к. про ООП тут вообще говорить не приходится.)
 

jonjonson

Охренеть
Активист, значением можно присвоить атрибуту (свойству) объекта, но не класса. Присвоение можно как-то описать в классе жёстко или описать интерфейс для возможности присваивания... (Уже у самого от абстракций крышу рвёт).

А вообще задача из разряда: "сходи туда - не знаю куда и принеси то - не знаю что".

Ну ещё как вариант... Ну и пропиши:
$moduleInfo = array("Название ссылки" => "Урл", "Название ссылки 2" => "Урл 2");
 

Alexander Coral

Новичок
Re: Вопрос ООП и установка значения атрибута класса

Автор оригинала: Активист
Нужно сделать следующее, без использования global и т.п.
Присвоить значение переменной $info атрибуту moduleInfo того класса, из которого было подключение файли __info.php, в то же время, массив $info не должен быть каким либо атрибутом другого класса, а являться обычной переменной.
PHP:
<?php
$info = array(
    'admLinks' => array(
        'ru' => array("Название ссылки" => "Урл", "Название ссылки 2" => "Урл 2"),
    )
);

class module_adminMenu
{
    protected $moduleInfo;
    
    public function __construct(array &$info)
    {
        $this->moduleInfo = $info;
    }
}

$adm_menu = new module_adminMenu($info);
Можно так, а можно и отдельный метод сделать для этого, типа assignInfo().
 
Сверху