![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
iexx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2007 Где: Gomel, BY Репутация: нет Всего: нет |
Ребят, можете прояснить ситуацию. Почему в нижеприведённом коде не срабатывает деструктор. Причем не срабатывает даже если раскомментивать две строки. ( т.е. создавать экземпляр от текущего класса). Явного конструктора нет, но есть примеры, где работает прекрасно и без него.
Да и если его поставить, то тоже ничего хорошего не будет. ;( Вообще больше необходимо вызвать деструктор вот этого экземпляра (self::$object_instance = new $class($params);), но и он не срабатывает ;( В чем может быть проблема?
|
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: нет Всего: 54 |
Конструктор и деструктор вызывается только при создании объекта от это класса. При использовании статических методов без инициализации объекта конструктор и деструктор НЕ будет вызываться. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
iexx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2007 Где: Gomel, BY Репутация: нет Всего: нет |
Да, но там у меня есть строка вот такая закоментированная: self::$object_instance1 = new self; т.е. инстанцирование происходит от этого же класса. Да, у меня используется статический метод, но ведь инициализация была проведена и объект храниться в аттрибуте. + ко всему: new $class($params); когда я тут создаю новый экзмепляр, то у него ведь тоже есть деструктор, который тоже не вызывается ;( |
|||
|
||||
mishaSL |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: нет Всего: 54 |
Конструктор и деструктор должен вызываться: Пример:
А должен если объект создается. Но вам не кажется что у вас малость запутанная структура... -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
||||
|
|||||
iexx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2007 Где: Gomel, BY Репутация: нет Всего: нет |
оопс.
у меня пример вышеприведённый не отработал( опять таки не сработал деструктор)
Только так сработал ;( Добавлено через 1 минуту и 10 секунд мм, бред какой-то, срабатывает через раз ;) |
|||
|
||||
mishaSL |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: нет Всего: 54 |
Посмотри какая версия PHP потом здесь (bugs.php.net) посмотри, может просто версию PHP обновить надо. И еще ИМХО, лучше вместо:
делать так:
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
||||||
|
|||||||
iexx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2007 Где: Gomel, BY Репутация: нет Всего: нет |
ок, спасибо.
Я ещё посмотрел, у меня дебаггер не всегда верно отрабатывает, ну да ладно с ним. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |