[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание объекта через переменную
alex12060
Доброй ночи, форумчанин )

Передо мной стала нехитрая задача, в чем она заключается? Заключается она в том, что у меня есть различное кол-во классов, и у каждого, в конструкторе, определенное кол-во переменных. Каждый класс вызывается с функции, вот так:


function getClass($class, $data = array()) {
// Lot of code

$c = new $class($data);
}

$class = getClass('A', array('a' => 'b', 'c' => 'd'));

// Class A now

class A {
public function __construct($data) {
extract($data);
}
}


// Class A need

class A {
public function __construct($a, $b) {

}
}



Собственно, выглядит средне и такому варианту можно найти применение, но есть ряд недостатков.

1. Писанина в параметре функции getClass в виде array(k => v, k1 => v1, kn => vn);
2. Нет совместимости классов, считай, они заточены под проект, ибо на приеме в конструкторе нужен массив.

Кто может что сказать? Как можно организовать вызов функции getClass вида:


$a = getClass('A', $var1, $var2);


Я уже голову изломал, даже хотел сделать в каждый класс вместо конструктора функцию, типа main(), и уже запускать ее через call_user_func_array.
Есть дума собрать в функцию и запустить через eval, но это нельзя, ибо не везде он доступен.

P.S. Сейчас придумал через create_function попробовать. Если, может, будут мысли все таки, отпишите.
alex12060
В последнее время понимаю, что порой спешу с вопросами сюда :)
Есть ответ:

ReflectionClass::newInstanceArgs()


Может, кому пригодится)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.