Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание экземпляра класса с переменным количество аргументов
 
 автор: WapMorgan   (05.11.2010 в 23:00)   письмо автору
 
 

Требуется создать обьект, где количество параметров может изменяться.
Т.е что то наподобии call_user_func_array(), но при создание обьекта

  Ответить  
 
 автор: sl1p   (05.11.2010 в 23:11)   письмо автору
 
   для: WapMorgan   (05.11.2010 в 23:00)
 

что значит создать, что значит параметры могут изменяться?)

вопрос вообще непонятен.

  Ответить  
 
 автор: WapMorgan   (05.11.2010 в 23:15)   письмо автору
 
   для: sl1p   (05.11.2010 в 23:11)
 

Пример.
Есть класс index со статическим методом create_obj();
При обращении к методу, передается в качестве первого параметра имя класса, экземпляр которого нужно создать, и в качестве второго - массив параметров, передаваемых при создании экземпляра.
class index
{
        static function create_obj($class_name, $args)
    {
    return new $class_name($args);
    }
}

Но так передается массив в качестве первого параметра.

  Ответить  
 
 автор: sl1p   (05.11.2010 в 23:27)   письмо автору
 
   для: WapMorgan   (05.11.2010 в 23:15)
 

ну как вариант, можно сначала создать, а потом повторно вызвать конструктор, кривовато конечно но тоже вариант=)

либо можно извратиться так))

<?
class index 

    static function & 
create_obj($class_name$args
    { 
        
$eval 'new '.$class_name.'('.(implode(','$args)).')';
        return eval(
$eval);
    } 
}


хотя может копнуть глубже?)
зачем понадобилась такая задача?

  Ответить  
 
 автор: WapMorgan   (05.11.2010 в 23:59)   письмо автору
 
   для: sl1p   (05.11.2010 в 23:27)
 

спасибо.
как то сам не додумался =)
пока буду так использовать.

  Ответить  
 
 автор: sl1p   (06.11.2010 в 00:05)   письмо автору
 
   для: WapMorgan   (05.11.2010 в 23:59)
 

как именно?)

  Ответить  
 
 автор: WapMorgan   (06.11.2010 в 00:21)   письмо автору
 
   для: sl1p   (06.11.2010 в 00:05)
 

как вы подсказали

  Ответить  
 
 автор: Николай2357   (06.11.2010 в 09:23)   письмо автору
 
   для: WapMorgan   (06.11.2010 в 00:21)
 

Тут поройтесь.
Особенно тут
Если я правильно понял задачу, это то, что нужно.

  Ответить  
 
 автор: WapMorgan   (06.11.2010 в 09:58)   письмо автору
 
   для: Николай2357   (06.11.2010 в 09:23)
 

Большое спасибо!
Читал же главу отражений в книге, да вот подзабыл.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования