(Алекс)
Эксперт
Дата регистрации:
21.06.2013 14:56:26
Сообщений: 114
Здравствуйте,
В видео-курсе, в разделе адаптеров, встретил такой класс, который возвращает экземпляр класса DataBase или, если его нет, создает и возвращает.
Так вот вопрос: если мы создадим экземпляр, например, в файле router.php, потом в этом файле вызовем функцию класса, который находится в другом файле, скажем, UserController.php, то надо ли нам передавать этот экземпляр в качестве параметра или нет?
То есть, не будет ли создаваться в такой ситуации новый экземпляр? (пример ниже)
router.php
<?
class Router {
public function route() {
$db = DataBase::getDBO(); // создали и вернули экземпляр в 1 раз!
$user = new UserController();
$user->getUserFromDB(); // вот тут вызвали метод, который требует соединения с БД
}
}
?>
UserController.php
<?
class UserController {
public function getUserFromDB() {
$db = DataBase::getDBO(); // здесь создастся новый экземпляр или нет?
/* далее работаем с объектом класса DataBase */
}
}
?>
gemiks
Мастер
Дата регистрации:
17.03.2013 18:03:11
Сообщений: 177
Нет повторно он не создается, осуществляется проверка, создан или нет
(Алекс)
Эксперт
Дата регистрации:
21.06.2013 14:56:26
Сообщений: 114
понятно. Я так понимаю, что класс не уничтожается из-за того, что не создан деструктор?
gemiks
Мастер
Дата регистрации:
17.03.2013 18:03:11
Сообщений: 177
Если деструктор не создан явно, не означает что он не срабатывает. Это так же как метод __string() его не обьязательно описывать, но он срабатывает.
(Алекс)
Эксперт
Дата регистрации:
21.06.2013 14:56:26
Сообщений: 114
Тогда почему данные не уничтожаются?
gemiks
Мастер
Дата регистрации:
17.03.2013 18:03:11
Сообщений: 177
А какие данные должны уничтожиться?
(Алекс)
Эксперт
Дата регистрации:
21.06.2013 14:56:26
Сообщений: 114
если поле не статическое, то данные, которые в нем хранятся уничтожатся? Соответственно, если поле статическое, то есть принадлежит классу, то данные в нем сохраняются?
gemiks
Мастер
Дата регистрации:
17.03.2013 18:03:11
Сообщений: 177
Что-то я вообще не могу вникнуть в суть вашего вопроса, или вопросов
(Алекс)
Эксперт
Дата регистрации:
21.06.2013 14:56:26
Сообщений: 114
ладно, вроде бы то, что я хотел понять, я понял =)
gemiks
Мастер
Дата регистрации:
17.03.2013 18:03:11
Сообщений: 177
Ну это хорошо)