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

Тема в разделе "PHP программирование", создана пользователем staromand, 6 май 2013.

  1. staromand

    staromand New Member

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

    Код (PHP):
    function list_items() {
    echo Uinf->login;
    echo Uinf->age;
    echo Uinf->id;
    }
    Это не работает.
    Хотя чуть выше этой функции в этом же файле *.php я могу спокойно добиться этих параметров от класса. А внутри функции - нифига. Говорит, неизвестный класс.

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

    ashby New Member

    Регистрация:
    19 июн 2013
    Сообщения:
    4
    Симпатии:
    0
    Ваш класс статический или нет? В приведенном примере кода вы не указали символ доллара перед названием класса, а значит он статический, но к параметрам этого класса вы обращаетесь как к не статическому.

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

    echo $Uinf->login;
    echo $Uinf->age;
    echo $Uinf->id;
    }
    Если класс статический, то все вообще сводится к тому в каких пространствах имен находится у вас сам класс и функция. В таком случае нужно либо поместить функцию и класс в одно пространство имен, либо использовать полный адрес класса, либо явно обозначить использование класса по его полному адреса с помощью ключевого слова use.
     
Загрузка...

Поделиться этой страницей