|
|
|
| Всем доброго времени суток!
У меня такой вопрос. Есть класс, работающий с экземпляром класса MySQL, который в свою очередь устанавливает соединение с БД. Как лучше, практичнее импортировать переменную, обозначающую экземпляр класса MySQL, в класс, который работает с этим экземпляром.
Можно передать переменную на этот экземпляр методу в качестве параметра:
<?php
$mysql = new MySQL;
class MyClass {
public function method($mysql) {
$mysql->query("");
}
}
?>
|
Можно объявить эту переменную глобальной внутри метода:
<?php
$mysql = new MySQL;
class MyClass {
public function method() {
global $mysql;
$mysql->query("");
}
}
?>
|
Из двух второй вариант мне нравится больше, т.к. не нужно передавать эту переменную каждый раз при вызове метода, тем более если ты заранее знаешь, что в этом методе тебе понадобится экземпляр класса MySQL.
Наверняка многие из тех, кто работает с классами встречались с такой необходимостью. Поделитесь опытом. Подскажите какие минусы и плюсы у этих двух вариантов. Может еще как-нибудь можно осуществить данную задумку?
Заранее благодарю. | |
|
|
|
|
|
|
|
для: newProgrammer
(06.04.2009 в 00:37)
| | Насколько я понимаю в классах переменные необходимо предварительно объявлять. В отличие от обычных пользовательских функций переменные, объявленные в свойствах класса, доступны для любого метода этого класса. К тому же в приводимых Вами примерах вы допускаете ошибку - создаете экземпляр несуществующего класса MySQL. | |
|
|
|
|
|
|
|
для: newProgrammer
(06.04.2009 в 00:37)
| | Я пошел вторым путем, так как в случае первого варианта приходилось передавать и другие используемые внутри класса экземпляры классов, что довольно быстро начинало раздражать. Есть еще вариант объявить эти классы внутри текущего, а снаружи вызывать их через него, но что-то он мне совсем не нравится. | |
|
|
|
|
|
|
|
для: Loki
(06.04.2009 в 10:56)
| | Спасибо. Я так и сделаю. | |
|
|
|