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

Форум PHP

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

 

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

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

тема: Обьявление класса в "фабрике"
 
 автор: vorobey   (18.02.2012 в 12:34)   письмо автору
 
 

В методе фабрика есть обьявление класса через switch - case 'Comments'

return new blogComments($this->lang, $this->GET, $this->template, $query, $this->cat_arr);

и таких строк достаточно много.
Хотелось сделать как в примере про фабрику на оф сайте PHP но как передать параметры классу?

вот типа

$switch = 'Comments';
$class = 'blog' . $switch;
return new $class($this->lang, $this->GET, $this->template, $query, $this->cat_arr);

А параметры для конструктора ?

ps я понимаю что return с ошибкой , но я для наглядности мысли. Спасибо!

  Ответить  
 
 автор: vorobey   (20.02.2012 в 18:34)   письмо автору
 
   для: vorobey   (18.02.2012 в 12:34)
 

вот этот пример из мануала, но в нем конструктору не передается параметров и поэтому реализуется просто. А если задать параметры то не получается....

<?php
class Example
{
    
// Параметризированный фабричный метод
    
public static function factory($type)
    {
        if (include_once 
'Drivers/' $type '.php') {
            
$classname 'Driver_' $type;
            return new 
$classname;
        } else {
            throw new 
Exception('Драйвер не найден');
        }
    }
}
?>


зы может я не так понимаю прицип и конструктор не должен тут быть...!?

  Ответить  
 
 автор: cheops   (20.02.2012 в 18:45)   письмо автору
 
   для: vorobey   (20.02.2012 в 18:34)
 

Есть функция call_user_method(), возможно вам будет удобно ей воспользоваться.

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

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