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

Ваш аккаунт

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

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

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

PHP4. ООП. Проблема с использованием класса в классе

244
07 июня 2007 года
UAS
2.0K / / 19.07.2006
Вообщем сначала хочу сказать чорри что так тему назвал, просто подходящего ничего не придумал. Вкратце проблема такова:
Есть класс Leaders, предназначенный для отбора и обработки данных из БД. Так же существует класс для работы с БД - DB.
В классе DB также есть функция, которая считает кол-во запросов. Считает она правильно, но есть одно НО. Когда мы этот класс определяем внутри Leaders, то подсчет идет не очень правильно... Короче вот пример:

Отрывок класса Leaders:
 
Код:
class Leaders {
var $DB; // класс для работы с БД
......................
/* __CONSTRUCTOR__ */
function Leaders(&$DBlink) {
    $this->DB=$DBlink; // здесь устанавливаем ссылку на класс (ИМХО здесь и есть ошибка, но не могу понять в чем, ведь по идее по ссылке передаем
}
.......
}


И некоторые фрагменты класса для БД:
 
Код:
class DB {
    var $count=0; // подсчитывает кол-во запросов

    function getCountSQLs() {
        return $this->count;
    }
}


Далее я там провожу в файле сортировку, выборку данных и т.д.
В конце надо получить кол-во запросов к БД. Запросы к БД проводились только из класса Leaders.
Проблемы в получении данных, а именно:
 
Код:
print $DB->getCountSQLs(); // выводит 0
print $Leaders->DB->getCountSQLs(); // выводит 6

Хотя по идее в обоих случаях должно выводится 6. Я догадываюсь что ошибка должна быть именно в определении DB в Leaders, только че-то не могу понять в чем косяк...
244
07 июня 2007 года
UAS
2.0K / / 19.07.2006
Проблема мгновенна решена) Че-то я натупил))

Надо заменить
 
Код:
$this->DB=$DBlink;
на
 
Код:
$this->DB=&$DBlink;
8
08 июня 2007 года
mfender
3.5K / / 15.06.2005
Не пользуйся PHP4... Заставляют? По рукам их! )))))

Кстати, да, достаточно неприятный момент с указанием ссылок. В PHP5 стало удобнее - один раз в описании метода указывается, что передаётся ссылка на переменную. Зато в PHP4 всё однозначно - в любом месте кода видно, когда передаётся ссылка...
244
08 июня 2007 года
UAS
2.0K / / 19.07.2006
mfender, да не.. Я то сам ни на кого не работаю. Так от делать нечего программирую. Делал статистику для сайтика знакомого.. А у него PHP4, так что приходится на PHP4 писать)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог