Как создать объект в ООП?

Borland

Новичок
Как создать объект в ООП?

Вот такая задача. Есть список, в котором хранится информация о том какие данные откуда брать для страницы. Трабла в том что инфа - может быть абсолютно разная. Поэтому в цикле идём по этому списку и подключаем необходимые данные. Вопрос возникает вот когда. Допустим что я хочу чтоб на странице был сначала текст, который должна дать библиотеа А, потом текст от библы Б, потом опять от А.
Если я в цикле подключаю файлы библиотек, то получается, что возможна ситуация с повторным объявлением класса. но это решается ещё кое как. Основная проблемма с которой я столкнулся - это то, что я получаю строку, в которой содержится название библы, функциями которого надо пользоваться.
т е
$bibla = "lib_book";
а мне нужно обратиться к функции lib_book::get_info();
потом соответственно
$bibla = "lib_tv";
и обратиться к lib_tv::get_info();
.....
lib_book::get_info();

Подскажите как решить проблему перехода от названия библы в строке $bibla к что-то::get_info();

и вообще возможно ли это?
 

voituk

прозревший
Если я в цикле подключаю файлы библиотек, то получается, что возможна ситуация с повторным объявлением класса
require_once / include_once / class_exists спасет отца русской демократии.

первое что приходит в голову (хотя такой static-вызов может не заработать).
PHP:
...
$bibla = "lib_book";
$bibla::get_info();
...
или же
PHP:
...
$bibla = "lib_book";
eval("$bibla::get_info();");
...
 

StUV

Rotaredom
voituk
тестируйте свои примеры, перед тем как их постить...
 

Gorynych

Посетитель PHP-Клуба
Borland

я чего-то не понимаю. Вы назвали тему "Как создать объект в ООП?". Так и работайте в объектной модели. У Вас PHP версии 5? Тогда создавайте объект нужного класса:
Код:
if (class_exists('MyClass')) {
   $myclass = new MyClass();
}
см. http://ru.php.net/class_exists Опять же, проблема повторного подключения вполне решается проверкой существования класса.

возможно Вам еще понадобится http://ru.php.net/method_exists
 

StUV

Rotaredom
Gorynych
ему скорее надо

if (class_exists($MyClassName)) {
$myclass = new $MyClassName();
}
 
Сверху