VDS за 300р от нашего партнера SpaceWeb
[61]
13 Июн 2012, 12:04

Динамическое создание класса

Привет!

Возможно ли в PHP динамическое создание класса? Нужно в цикле создавать несколько классов и делать от них объекты. Например, как в JavaScript (var obj = {}).

Комментарии (1)
grom 13.06.2012 15:09

Создать класс динамически можно только используя eval().

Но если вам нужно создать скажем пустой объект, в который потом прикрутить нужные методы и свойства.

Создайте класс blank.class.php:

class blank 
{
private $functions = array();
private $vars = array();

function __set($name, $data)
{
if(is_callable($data)) $this->functions[$name] = $data;
else $this->vars[$name] = $data;
}

function __get($name)
{
if(isset($this->vars[$name]))
{
return $this->vars[$name];
}
}

function __call($method,$args)
{
if(isset($this->functions[$method]))
{
return call_user_func_array($this->functions[$method], $args);
}
}
}

Далее его загружаем и создаём экземпляр класса.

require_once PATH_DIR."/blank.class.php";
$obj = new blank;

А дальше прикручивайте к нему методы и свойства.

$obj->param = 'Новый параметр';
$obj->method = function()
{
return 'Новый метод';
};

echo $obj->param;
echo $obj->method();
+2

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки:
Лучшее
[52]
16 Окт 2011, 15:38
Вывести все элементы POST
[просмотров 14074]
[74]
31 мая 2011, 11:48
Python проверка существования переменной
[просмотров 9732]
[4]
10 Окт 2018, 15:33
Как запретить просмотр сайта по IP?
[просмотров 8995]
[100]
19 Дек 2014, 16:16
User-agent для Internet Explorer 11
[просмотров 8858]
[315]
11 Авг 2011, 00:21
Спецификация HTML5 от W3C
[просмотров 7363]
[125]
21 Июл 2011, 14:04
Python Imaging Library (PIL)
[просмотров 7090]
[315]
16 Июл 2011, 20:03
Python работа с MySQL
[просмотров 5134]

Вести с Хабра