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

0

  1. 1
  2. 2
  3. 3
  4. 4
<?php
if ("$payment_method" ==  "1") {

?>

еще один шедевр, зачем так делать?

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

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

  • а ты сравни 2 кода:
    <?if($smth){?>
    <script type="text/javascript">
    alert('hello')
    </script>
    <?}?>

    <?
    if($smth){
     print("<script type=\"text/javascript\">\r\n".
     "alert('hello')\r\n".
     "</script>");
    }
    ?>

    какой красивше?
    Ответить
  • xengine:
    Говногость, причем тут это
    красивее будет не первый не второй а третий
    <?php if ($check) : ?>
    <strong>Hello</strong>
    <?php endif; ?>

    так как он понятней не программистам..
    но я думаю автор имел ввиду почему переменная в скобки запихнута
    Ответить
  • Приведение к строковому типу. То же самое, что написать:(string)$payment_method (мне такой вариант кажется симпатичнее). Зачем? Зависит от того, что находится в переменной $payment_method.

    Если, например, объект, то код эквивалентен $payment_method->__toString() == "1"

    Если число, то можно и не приводить.
    (string)1 == "1"
    1 == "1" // то же самое

    Если boolean - тоже можно не менять тип.
    (string)true == "1"
    true == "1" // то же самое

    А вот если массив, то другое дело.
    (string)array(1,2) != "1"
    array(1,2) != "1"
    array(1,2) == true
    Ответить
  • anmiles:
    Вопрос в том, нахрена в PHP приводить к стрингу переменную, которая потом еще и сравнивается с интом?

    единственный шанс этого кода быть не говном такой:
    if ("$payment_method" ===  "1") {

    но и он безнадёжно провален.
    Диагноз: говнокод! 🙂
    Ответить
  • Говногость #3:
    это же очевидно что там int ($payment_method=1;)

    нахрена и то и это приводить к string?

    Автор кода видимо незнает про типы данных вообще т.к далее по его коду
    наблюдается такое

    $db = mysql_pconnect("$dbhost", "$dbuser", "$dbpass") or die("Could not connect");
    Ответить
  • Keeper:
    Литеральные константы -- это зло.

    Что обозначает "1"? Каков его сакральный смысл?
    Ответить
  • Дkя сравнения строк нужно использовать strcmp и не выёбываться, господа.
    Ответить

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

Из-за тебя ушел bormand, guest!

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


    8