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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    foreach ($metrics as $m)
    		{
    		eval('$data["'.$a.'"]["'.$m.'"] = $result->get'.$m.'();');
    		}

    На одном из сайтов который объясняют как работать с гугл аналикс апи.
    Нафига выполнять столько раз евал???

    не легче и лучше
    $key = 'get' . $m;
    $data[$a][$m] = $result->{$key}();
    евалить стопицот рас???

    Запостил: 3xdimon, 19 Апреля 2012

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

    • eval вообще вырезать из языка надо с корнями... Он, конечно, однажды и мне пригодился... Но через год после этого я понял что я просто мыслил неправильно, и можно там было без eval`а сделать. :)
      Ответить
      • "if eval() is the answer, you're almost certainly asking the wrong question"
        Rasmus Lerdorf the author of that fucking shit

        В обыденном коде его практически никогда не нужно использовать, это факт. Возможно, есть кейсы, когда он был бы полезен, но это относиться скорее к различным инфраструктурным задачам (генерация кода? загрузчик модулей?), а не к клиентскому коду.
        Ответить
        • Надо было назвать как-нибдуь типа system_lang_dynamic_evaulate_expression (метод в классе, который создается отдельной фабрикой)
          Ответить
        • А как же
          M-:
          ?
          Ответить
          • Это как раз скорее инфраструктурная задача, необходимая для разработки: эксперементировать с кодом в интерпретаторе (удобно внедрённом в текстовый редактор) перед тем, как двинуться дальше. В большинстве современных языков это постепенно вытесняется юнит-тестами.
            Ответить
            • юнет-тесты это и есть эксперементы
              Ответить
            • Кто чего... я это вообще вместо калькулятора использую...
              Ответить
        • Ну я это и имел в виду, собственно. :) Спасибо за формулировку.
          Ответить
    • it sucks and i like it

      http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
      Ответить
    • У жeны oкaзaлся любoвник, и я уeхaл, брoсив всё, в дaльнee Пoдмoскoвьe, гдe у мeня былa oднoкoмнaтнaя квaртирa
      Ответить

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