"PHP" / Говнокод #250 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
$params = array (
        'host'     => $cfgMessageDb->host,
        'username' => $cfgMessageDb->username,
        'password' => $cfgMessageDb->password,
        'dbname'   => $cfgMessageDb->name,
        'persistent' => ( defined("USE_PERSISTENT_CONNECTION") && USE_PERSISTENT_CONNECTION ) ? true : false
    );

И вот таких кусков дохренища.

Запостил: guest guest, (Updated )

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

  • Анонимус:
    Вы еще не видели исходники ShopScript
    Ответить
  • Vov4ik:
    Что-то не вдуплюсь что здесь плохого? Чувак забил массив из конфига... Где прикол то?
    Ответить
  • Snark:
    все правильно, корректный, я бы даже сказал хороший код. Если вам не понятно почему последняя строла выглядит имеено так, а не ,скажем,
    'persistent' => USE_PERSISTENT_CONNECTION

    значит вам просто не хватает опыта.
    Ответить
  • страйко:
    ( defined("USE_PERSISTENT_CONNECTION") && USE_PERSISTENT_CONNECTION )

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

    p.s. иногда сам такое пишу и потом приходится переделывать без ? и :
    Ответить
  • Keeper:
    Можно добавить преобразование типа в boolean:
    (boolean) (defined("USE_PERSISTENT_CONNECTION") && USE_PERSISTENT_CONNECTION)
    Ответить
  • ал:
    Учите программирование, а не постите сюда то что не в состоянии понять.
    Половину инда-кода на самом деле таковым не является, просто все свалить на индусов проще.
    Ответить
  • ал:
    условие:
    if (defined("USE_PERSISTENT_CONNECTION") && USE_PERSISTENT_CONNECTION) {
    //something
    }

    можно написать по другому:
    if (defined("USE_PERSISTENT_CONNECTION")) {
    if (USE_PERSISTENT_CONNECTION) {
    //something
    }
    }


    Условие expr1 && expr2 выполняется следующим образом:
    проверятся expr1 - если false - то expr2 просто не выполняется.
    а так - сначала проверили вкоде что константа есть а потом сверили ее значение.

    Похоже выполняется условие expr1 || expr2
    если expr1 = истенна - то второе проверять нет смысла и оно не проверятся.
    Ответить
  • Londeren:
    ал, ну ты и хуетищщу запостил однако
    глаза прям на логику компиляторов нам всем открыл, а мы то и не знали))
    Ответить
  • ал:
    Судя по тому что этот код еще тут - значит не знаете и до сих пор.
    Ответить
  • На самом деле причину, по которой я это сюда запостил, точно описал страйко в самом начале.
    Там действительно тернарный оператор абсолютно лишний.
    Ответить
  • vic:
    глупости, незадефайнутая константа является стрингой с длиной, равной ее названию, и поэтому любые проверки по варианту наличия дадут true - поэтому вполне правильмый и универсальный код для проекта, где девелопер не один и уровень их неизвестен.
    Ответить
  • >> если expr1 = истенна

    стена - там, убейся

    >> Судя по тому что этот код еще тут - значит не знаете и до сих пор.

    Судя по каменту ты не шибко догадливый. На страшный говнокод, конечно, не тянет, но можно было лучше. Твои цитаты тут совершенно не к месту.
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8