Добавить функцию в класс
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Добавить функцию в класс - 2008-04-17 18:39:42.050000
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
Всем привет! Есть класс db Мне, по результатам функции db::connect() нужно добавть в этот класс другие функции из других файлов. Ну что-то вроде: quote:
class db{ function connect(){ … } include 'mysql/mysql_4_1.php'; } Но вставить include в класс, а не в функцию нельзя! Встаёт вопрос, как сделать так, что бы полсе того, как была выполнена функция db::class(), в класс db добавлялись новые функции =)) Понятно объяснил? :)
|
|
|
RE: Добавить функцию в класс - 2008-04-17 20:02:47.813333
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Вопрос понял. Вообщем если сделать немного подругому то может получится. Интерфейсы можно попробовать: http://ru2.php.net/manual/ru/language.oop5.interfaces.php Или абстрактные классы: http://ru2.php.net/manual/ru/language.oop5.abstract.php те не "вставлять" функцию, а определять ее позже…
|
|
|
RE: Добавить функцию в класс - 2008-04-17 20:27:46.496666
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
Да, но тут есть проблема. Откуда инклудить класс у меня решает connect() Т.е. у меня класс дополняется только после запуска одной из функций класса и только после этого в класс добавляются ещё функции. Если класс объявить абстрактным или создать интерфейс, то его функции нельзя использовать, пока ты его не соберёшь в другой класс. Т.е. тогда всё равно, что я бы использовал два класса
|
|
|
RE: Добавить функцию в класс - 2008-04-18 09:58:37.526666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Можно попробовать сделать слегка через попу: в данных класса будет ссылка на класс именно того класса, который тебе нужен. дальше. При обрашении к методу, предположим, query() будет нечто следующее: function query($sql) { $this->dbEngine->exec($sql); } А функция connect => function connect(/*куча параметров*/) { include_once('mysql_engine.php'); $this->dbEngine = New dbEngineClass(/*парам пам пам*/); } Вот как-то так =) Из меня хреновый рассказчик, но надеюсь идею ты понял…
|
|
|
RE: Добавить функцию в класс - 2008-04-18 14:28:38.716666
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
спс за помощь =)) решил эту проблему другим способом, когда системы выбирает, какой класс подключать до выполнения connect(); Не так "гибко", правда… Но работает )
|
|
|
|
|