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

    +51

    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
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    <?php
    
    $person = new stdClass();
    
    $person->create = function (array $data) use (& $person) {
        foreach ($data as $property => $value) {
            if (empty($person->{$property})) {
                $person->{$property} = $value;
            }
        };
    };
    
    $person->info = function () use (& $person) {
        echo "My name is $person->name and I'm an $person->age years old";
    };
    
    
    $person->create->__invoke(array(
        'name' => 'John', 
        'age' => 42,
    ));
    
    $person->info->__invoke();
    
    ?>

    Запостил: __proto__, 11 Ноября 2012

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

    • Low-level PHP.
      Ответить
      • Скорее функциональное.
        Ответить
        • Для полной функциональности не мешало бы цикл заменить на вызов какой-нибудь array_map().
          Ответить
        • Функциональное скорее тут: http://govnokod.ru/12086.
          Ответить
        • Функциональщики смеются над PHP.
          Ответить
      • Закат солнца вручную.
        Но мне понравилось. Только я склоняюсь к мысли о том, что приватные методы-свойства всё же полезны.
        Ответить
        • а вообще да. мне нравится сочетание принципов в ЯП:
          все есть объект.
          все есть выражение.
          все есть метод.
          Ответить
          • 1. Всё есть функция.
            2. Функция - это объект.
            3. ???
            4. Профит!
            Ответить
    • php as js.
      и никакой функциональщины.

      зато здорово напомнило Class.new() из Ruby
      Ответить
    • Я не стал сопротивляться и отправился в комнату. Через минуту Пашка уже сидел на кровати и ждал, когда у меня измерится температура.
      Ответить

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