Как Вызвать Класс Из Внешней Функции?

  • Автор темы Автор темы staromand
  • Дата начала Дата начала
S

staromand

Есть класс, который выводит по моему желанию перечень свойств юзера (группа, цвет, дата, пол и т.д.) Назовем его екземпляр "Uinf". Он включается в начале страницы.
Есть функция, которая поключается (require_once) позже этого класса. Назовем ее list_items();
Так вот, я пытаюсь спросить у класса внутри этой функции параметры пользователя. Вот так:

PHP:
function list_items() {
echo Uinf->login;
echo Uinf->age;
echo Uinf->id;
}

Это не работает.
Хотя чуть выше этой функции в этом же файле *.php я могу спокойно добиться этих параметров от класса. А внутри функции - нифига. Говорит, неизвестный класс.

Дело в том, что я уже продолжительное время не программировал, т.к. был занят другими вещами. Теперь свободное время потихоньку возвращается ко мне и я решил вспомнить свой код и писать сайт дальше. Спасибо заранее тем, кто пояснит мне, в чем загвоздка.
 
Ваш класс статический или нет? В приведенном примере кода вы не указали символ доллара перед названием класса, а значит он статический, но к параметрам этого класса вы обращаетесь как к не статическому.

Если класс не статический, то измените функцию следующим образом:
PHP:
function list_items() {
global $Uinf;

echo $Uinf->login;
echo $Uinf->age;
echo $Uinf->id;
}

Если класс статический, то все вообще сводится к тому в каких пространствах имен находится у вас сам класс и функция. В таком случае нужно либо поместить функцию и класс в одно пространство имен, либо использовать полный адрес класса, либо явно обозначить использование класса по его полному адреса с помощью ключевого слова use.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!