21 / 21 / 16
Регистрация: 30.09.2013
Сообщений: 262
|
||||||||||||||||
1 | ||||||||||||||||
Не могу получить переменную из другого класса18.09.2014, 07:36. Показов 4398. Ответов 4
Метки нет (Все метки)
Здравствуйте. Учу ООП. Создаю сайт. В каждом экшене сайта есть переменная public $page_title; которой на программном уровне я присваиваю какое-то значение. А это значение записываю в классе core при получении содержания экшена. Позже из класса template я делаю вызов на эту переменную, но не могу её получить
Я в шаблоне $this заменил на $core и все стало на свои места (заработало)
0
|
18.09.2014, 07:36 | |
Ответы с готовыми решениями:
4
Как можно сохранить экземпляр объекта в переменную другого класса? Как из одного объекта получить объект другого класса? Как получить private переменную класса, функцей членом другого класса Получить переменную из другого класса |
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|
18.09.2014, 18:47 | 2 |
0
|
21 / 21 / 16
Регистрация: 30.09.2013
Сообщений: 262
|
|||||||||||||||||||||
18.09.2014, 19:14 [ТС] | 3 | ||||||||||||||||||||
Во, максимально близко приблизился к ошибке)
Есть системный класс отвечающий за вывод шаблона. Если написать:
Но если написать так, то всё работает:
Добавлено через 14 минут Dolphin, Точно не скажу). Я подсмотрел этот способ в одной cms. Получаю данные благодаря написанному методу в каждом классе core и config:
0
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
||||||
18.09.2014, 19:17 | 4 | |||||
Сообщение было отмечено -MaZaHaKa- как решение
Решение
1
|
21 / 21 / 16
Регистрация: 30.09.2013
Сообщений: 262
|
|
18.09.2014, 20:41 [ТС] | 5 |
Dolphin, вот что вышло в конструкторе:
object(core_core)[2] public 'url' => null public 'controller_name' => string 'auth' (length=4) public 'controller_class' => null public 'controller_obj' => null public 'action_name' => null public 'action_class' => null public 'action_obj' => null public 'page_title' => null public 'params' => array (size=0) empty public 'system_folder' => string 'C:/OpenServer/domains/example/system' (length=36) Вот что вышло в методе title(): object(core_core)[2] public 'url' => string '/' (length=1) public 'controller_name' => string 'auth' (length=4) public 'controller_class' => string 'controller_auth' (length=15) public 'controller_obj' => object(controller_auth)[4] public 'action_default' => string 'login' (length=5) public 'action_name' => string 'login' (length=5) public 'action_class' => string 'action_auth_login' (length=17) public 'action_obj' => object(action_auth_login)[5] public 'page_title' => string 'LANG_AUTH_LOGIN' (length=15) public 'page_title' => string 'LANG_AUTH_LOGIN' (length=15) public 'params' => array (size=1) 'action' => string 'login' (length=5) public 'system_folder' => string 'C:/OpenServer/domains/example/system' (length=36) А если выводит $config - то они одинаковые в обоих случаях Добавлено через 20 минут аааааа. Я понял в чем дело!!! Проблема в том что при подключении классов функциями $config = core_config::getSystem(); $core = core_core::getSystem(); в __construct подключаются нужные классы и выполняется только то что находится в конструкторе этих классов. Иными словами в конструкторе класса core_config я загружаю данные из файла В конструкторе класса core_core я определяю переменную system_folder (мы её видим в логах) и переменную controller_name, которая задана на программном уровне. Все остальные методы класса core_core не запускаются в действие, по этому все остальные свойства имеют NULL. Но если определить $core = core_core::getSystem(); вне конструктора (в любом методе) - запускается весь класс core_core, и переменные класса в ходе работы приобретают значения. Интересно, почему так?)); но в принципе уже не так важно, проблему я понял
0
|
18.09.2014, 20:41 | |
18.09.2014, 20:41 | |
Помогаю со студенческими работами здесь
5
Как получить переменную из другого класса? Не могу вывести в TextBox переменную Int из другого класса Не видит переменную внутри класса из другого класса Вывести переменную из другого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |