X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Работа с классами
Frostiks
Frostiks
Topic Starter сообщение 28.7.2013, 11:48; Ответить: Frostiks
Сообщение #1


Всем привет! Подскажите пжалуйста как решить, вот у меня есть класс:
[PHP]class db{
private $host = '';
private $user = '';
private $pass = '';
private $mydb = '';
private $connection;

function mysqli(){
$connection = new mysqli ($this->host, $this->user, $this->pass, $this->mydb);
if ($this->mysqli->connect_error) {
throw new exception($connection->connect_error);
}
$this->connection = $connection;
return true;
}


public function select($id){
$stmt = $connection->prepare("SELECT * FROM table WHERE id = ?");
$stmt->bind_param('s', $id);
$stmt->execute();
return $stmt;
return true;
}


}[/PHP]

И есть второй класс
В нем будет например var_dump

[PHP]class qaz{
public function vd($q){
return var_dump()
}

}[/PHP]

Вообщем суть вопроса в том, как мне в классе qaz использовать метод select из скласса db
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
PRStudio
PRStudio
сообщение 6.8.2013, 6:13; Ответить: PRStudio
Сообщение #2


Варианты:
1. Создать экземляр db внутри qaz
2. Объявить select как статический метод (но при этом придется перекроить класс)
3. Использовать класс-обертку: фабрику (создавать экземляры по требованию, и хранить уже созданный "главный" экземляр), одиночку (для данного случая менее пригодна, способен хранить лишь один собственный экземляр)

По 3-му небольшой набросок

[PHP]class CFactory
{
private static $db = NULL;
public static function getDB(){
if (self::$db == NULL){
self::$db = new db(); // ...
//...
}
return self::$db;
}
public static function getNewDB(){
return new db(); //...
//...
}
}[/PHP]

Тогда вызвать класс db из другого можно примерно так:
CFactory::getDB()->doSmth();

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужна работа
0 filatd 741 12.1.2024, 17:08
автор: filatd
Открытая тема (нет новых ответов) Работа: Разная рутина
Работа, разные рутинные задачи: постинг / переговоры / поиск
1 ivanshargin 964 31.10.2023, 17:55
автор: ServersExpert
Открытая тема (нет новых ответов) Нужна удаленная работа
Нужна удаленная работа
0 filatd 1014 12.9.2023, 11:40
автор: filatd
Открытая тема (нет новых ответов) Нужны тексты для сайта, работа на постоянку
6 danilchuk88 1632 19.3.2023, 0:53
автор: malamut
Открытая тема (нет новых ответов) Работа по размещению ссылок
1 masterstraff 2099 17.12.2022, 2:43
автор: aspi


 



RSS Текстовая версия Сейчас: 24.4.2024, 4:48
Дизайн