Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Добавить функцию в класс

Пользователи, просматривающие топик: 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 добавлялись новые функции =))

Понятно объяснил? :)
Post #: 1
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

те не "вставлять" функцию, а определять ее позже…
Post #: 2
RE: Добавить функцию в класс - 2008-04-17 20:27:46.496666   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Да, но тут есть проблема.
Откуда инклудить класс у меня решает connect()

Т.е. у меня класс дополняется только после запуска одной из функций класса и только после этого в класс добавляются ещё функции.

Если класс объявить абстрактным или создать интерфейс, то его функции нельзя использовать, пока ты его не соберёшь в другой класс.
Т.е. тогда всё равно, что я бы использовал два класса
Post #: 3
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(/*парам пам пам*/);
}

Вот как-то так =)

Из меня хреновый рассказчик, но надеюсь идею ты понял…
Post #: 4
RE: Добавить функцию в класс - 2008-04-18 14:28:38.716666   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
спс за помощь =))
решил эту проблему другим способом, когда системы выбирает, какой класс подключать до выполнения connect();

Не так "гибко", правда… Но работает )
Post #: 5
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Добавить функцию в класс







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.