Вы не зашли.
Главная » PHP » Классы/обьекты
#1. Morgan Off (10)
Участник
2010.11.12 20:08
Требуется вызвать конструктор базового класса, из производного с переменным количеством аргументов.
пляски с call_user_(method|func)_array не помогли.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#2. Gemorroj Off (107)
Administrator
2010.11.12 20:08
эм, parent::__construct();
#3. Morgan Off (10)
Участник
2010.11.13 08:08
С переменным количеством аргументов
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#4. Gemorroj Off (107)
Administrator
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...
}
как сказал один умный человек, ни к селу ни к городу.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#6. Gemorroj Off (107)
Administrator
2010.11.14 13:01
ну, в общем именно так) у тебя же все равно не будет методов на непредвиденное кол-во аргументов. так что с помощью swith мы сможем заранее кинуть исключение.
а что с call_user_func_array не так-то?
#7. Morgan Off (10)
Участник
2010.11.14 16:04
Код:
call_user_func_array(....
array('parent', '__construct')
'parent::__construct'
);
не катит
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#8. Gemorroj Off (107)
Administrator
2010.11.14 18:06
Да, почитал сейчас подробнее про call_user_func_array. В конструктор параметры не передать.
#9. Morgan Off (10)
Участник
2010.11.14 21:09
надобность отпала.
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#10. Morgan Off (10)
Участник
2010.11.16 22:10
надобность появилась big_smile
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#11. Gemorroj Off (107)
Administrator
2010.11.17 10:10
ну, eval не подходит, думаю? а в таком случае единственное что приходит - отказаться от конструкторов или передавать в конструкторы результат func_get_args() и в них разгребать параметры
#12. Morgan Off (10)
Участник
2010.11.18 23:11
дополнительный вопросец.
Обращаюсь к статическому массиву класса ($data).

При обращении к
"self::$data[$name] = $value;"
работает.

Но вот когда "$data[$name]" получается динамически, т.е. происходит такая конструкция:
"self::$$var_name = $value;"
вылетает ошибка
"Fatal error: Access to undeclared static property: Registry::$data['S']"

;/
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#13. Gemorroj Off (107)
Administrator
2010.11.19 10:10
очевидно правильное решение полюбому отказаться от переменных переменных)
#14. Morgan Off (10)
Участник
2010.11.19 13:01
:wall: :fuck: :suck:
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#15. Morgan Off (10)
Участник
2010.11.19 22:10
архитектуру привел в порядок...... теперь такая возможность не нужна.  cool
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#16. Gemorroj Off (107)
Administrator
2010.11.19 23:11
smile) к нам на работу человека взяли, мыслит просто шаблонами проектирования. через слово у него вылетают всякие "active-record", "mvc", "fabric" и проч) рвется все в проекте переписать под свой лад)) я сопротивляюсь, но все равно новый код появляется (не попадающий под текущую архитектуру проекта), как-нить выложу код для изучения, мне, например, было интересно поизучать.
#17. Morgan Off (10)
Участник
2010.11.22 15:03
ждем)
Натан ротшильд :
Кто владеет информацией, тот владеет миром
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.021 s