1. PHP / Говнокод #5028

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    <?php
    switch(func_num_args())
    {
        case 1:
            $$class = new $class(func_get_arg(0));
        break;
        
        # .... 
                    
        case 7:
            $$class = new $class(func_get_arg(0), func_get_arg(1), func_get_arg(2), func_get_arg(3), func_get_arg(4), func_get_arg(5), func_get_arg(6));
        break;
                    
        default:
            $$class = new $class();
        break;
    } 
    ?>

    Боюсь подумать о 10 и более передаваемых переменных в конструктор класса

    Запостил: MoLe-X, 23 Декабря 2010

    Комментарии (9) RSS

    • $$class = new $class();
      Вбив би...
      Ответить
    • Но конец, что то оригинальное.
      Ответить
    • Кстати, на дельфи можно обойтись без копипасты, но только с помощью асма (собирать на стеке массив длины, неизвестной при компиляции).
      А, не, массив можно делать в куче, а не на стеке.
      Ответить
      • это ГК если тебе такой код понадобился. если проблема не решается через object factory, то ты что-то делаешь/где-то думаешь неправильно.
        Ответить
    • мне казалось что в PHP как и в Perl параметры функции как список передаются?
      Ответить
      • Да. func_get_args() отдает все аргументы сразу.
        Ответить
    • а если целиком, то получаецо аццкая лесинко = )
      Ответить
    • Хм... eval тут нужен, тогда из говна demo-конфетка получится. Фабрика объектов тут ни к чему.
      Ответить

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