Доступ к объектам из подключаемых файлов

Трам-пам-пам

Новичок
Доступ к объектам из подключаемых файлов

Скорее всего, это я туплю, но никак не могу понять, где и как...
Есть проект, который использует include для подключения различных своих частей. Есть класс, допустим, user, который должен использоваться практически в каждом "кусочке".

Я создаю $user = new user; в index.php и что вижу - в остальных файлах, подключаемых с помощью include этот объект невиден. Удивительно, но global тоже не решает проблемы.

Подскажите. Ну не создавать же его в каждой дырке!
 

Navarro

Новичок
1)Объект должен инициализироватся до include
работает - $user = new user;
include('trampapam');

не работает include('trampapam');
$user = new user;

2) Посмотри чтобы у тебя больше нигде не объявлялась переменная с таким же именем.
 

Трам-пам-пам

Новичок
Всем спасибо за подсказки. Все, разобрался. @ зарылась как всегда там, где ее меньше всего ждали:
Протупил с "подключением" файлов - на самом деле, вместо include я использовал собственную функцию:

function my_include($file) {
if(file_exists($file))
include($file);
else
error(1, "Some files required for this project have been removed.");
}

Как-то сразу не доперло, что при таком выпендреже все подключается не в месте вызова my_include, а в месте ее определения (то есть, в файле functions.php) =)


Кстати, а нельзя все-таки реализовать my_include так, чтобы она подключала файлы в месте вызова?
 

Фанат

oncle terrible
Команда форума
в этом нет смысла.
скажи - какой смысл в этой твоей функции?
 

Трам-пам-пам

Новичок
Поумал. Наверное, ты прав. Вообще, "история" этой функции произрастает из одного сайта-проекта а-ля скрепки майкрософт, где на каждое действие выдавалась полстраничная справка. Так вот, изначально весь проект находился в файле install.php (я написал скрипт, который создает такие "инсталляторы", если его запустить в папке с проектом).
Запускаешь install.php - и "ставишь" сайт пошагово.

Вот, собственно, в случае случайного удаления одного из нужных файлов, клиент должен был увидеть не "failed to open stream", а нечто более цивильное, предлагающее заново обновить все файлы запуском install.php

А потом эта ф-я как-то "прижилась". Так, что я даже забывать начал, что она самописная...

В следующий раз буду использовать set_error_handler()
 

Фанат

oncle terrible
Команда форума
в случае случайного удаления одного из нужных файлов, клиент должен был увидеть не "failed to open stream", а нечто более цивильное
это должен видеть не только клиент микрософт, а и любой другой.
и для того, чтобы увидеть цифильное, не нужна такая функция
 
Сверху