Вы не зашли.
#1.
Morgan
Off
(10)
Участник
2010.11.12 20:08
Требуется вызвать конструктор базового класса, из производного с переменным количеством аргументов.
пляски с call_user_(method|func)_array не помогли.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
эм, parent::__construct();
#3.
Morgan
Off
(10)
Участник
2010.11.13 08:08
С переменным количеством аргументов
Натан ротшильд :
Кто владеет информацией, тот владеет миром
есть возможность подсчитать количество аргументов? если да, то просто через switch
#5.
Morgan
Off
(10)
Участник
2010.11.13 14:02
так что ли?
Код:
$args = func_get_args(); |
|
switch(count($args)) |
{ |
case 1: parent::__construct($args[0]); break; |
case 2: parent::__construct($args[0], $args[1]); break; |
// etc... |
} |
как сказал один умный человек, ни к селу ни к городу.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
ну, в общем именно так) у тебя же все равно не будет методов на непредвиденное кол-во аргументов. так что с помощью swith мы сможем заранее кинуть исключение.
а что с call_user_func_array не так-то?
#7.
Morgan
Off
(10)
Участник
2010.11.14 16:04
Код:
call_user_func_array(.... |
array('parent', '__construct') |
'parent::__construct' |
); |
не катит
Натан ротшильд :
Кто владеет информацией, тот владеет миром
Да, почитал сейчас подробнее про call_user_func_array. В конструктор параметры не передать.
#9.
Morgan
Off
(10)
Участник
2010.11.14 21:09
надобность отпала.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
надобность появилась
Натан ротшильд :
Кто владеет информацией, тот владеет миром
ну, eval не подходит, думаю? а в таком случае единственное что приходит - отказаться от конструкторов или передавать в конструкторы результат func_get_args() и в них разгребать параметры
дополнительный вопросец.
Обращаюсь к статическому массиву класса ($data).
При обращении к
"self::$data[$name] = $value;"
работает.
Но вот когда "$data[$name]" получается динамически, т.е. происходит такая конструкция:
"self::$$var_name = $value;"
вылетает ошибка
"Fatal error: Access to undeclared static property: Registry::$data['S']"
;/
Натан ротшильд :
Кто владеет информацией, тот владеет миром
очевидно правильное решение полюбому отказаться от переменных переменных)
:wall: :fuck: :suck:
Натан ротшильд :
Кто владеет информацией, тот владеет миром
архитектуру привел в порядок...... теперь такая возможность не нужна.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
) к нам на работу человека взяли, мыслит просто шаблонами проектирования. через слово у него вылетают всякие "active-record", "mvc", "fabric" и проч) рвется все в проекте переписать под свой лад)) я сопротивляюсь, но все равно новый код появляется (не попадающий под текущую архитектуру проекта), как-нить выложу код для изучения, мне, например, было интересно поизучать.
ждем)
Натан ротшильд :
Кто владеет информацией, тот владеет миром