Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как использовать класс внутри внешней функции?

88K
06 мая 2013 года
staromand
4 / / 06.05.2013
Вопрос по PHP, но, уверен, что мне дадут ответ здесь, т.к. туплю и забыл, в чем дело :D
Есть класс, который выводит по моему желанию перечень свойств юзера (группа, цвет, дата, пол и т.д.) Назовем его екземпляр "Uinf". Он включается в начале страницы.
Есть функция, которая поключается (require_once) позже этого класса. Назовем ее list_items();
Так вот, я пытаюсь спросить у класса внутри этой функции параметры пользователя. Вот так:

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

Дело в том, что я уже продолжительное время не программировал, т.к. был занят другими вещами. Теперь свободное время потихоньку возвращается ко мне и я решил вспомнить свой код и писать сайт дальше. Спасибо заранее тем, кто пояснит мне, в чем загвоздка.
326
06 мая 2013 года
sadovoya
757 / / 19.11.2005
Объект должен быть либо глобальным, либо передайте его в параметрах функции.
88K
06 мая 2013 года
staromand
4 / / 06.05.2013
Спасибо, я понял, к чему Вы клоните. Мой экземпляр класса должен быть создан глобально? Поступить также, как и с обыкновенными переменными...
 
Код:
global $Uinf;
$Uinf = new Userinfo($_SESSION['id']);
326
07 мая 2013 года
sadovoya
757 / / 19.11.2005
Php не знаю, но неужели в нем нет ф-ций с параметрами?
function list_items(параметр с типом Userinfo){ тело ф-ции}

Вызов ф-ции list_items(uinf)

Просто глобальные переменные не желательны.
88K
07 мая 2013 года
staromand
4 / / 06.05.2013
Спасибо. Да, можно и так. Просто, я думал, есть более "правильные" решения и эта функция не обязательно должна иметь параметр. Она должна выполняться всегда одинаково и с одними и теми же условиями.
20K
07 мая 2013 года
ellor!
198 / / 24.05.2012
Проще и правильнее, на мой взгляд, сделать функцию "list_items" методом класса "Userinfo".
88K
07 мая 2013 года
staromand
4 / / 06.05.2013
В моем случае неэкономно - list_items вызывается в 10% случаев посещения сайта, а Userinfo 99,9%. Спасибо, использую передачу через параметр в функцию.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог