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

    +166

    1. 1
    $limit = (isset($this->params['pass'][1]) == 'news')?null:5;

    балина, и это работает :D

    Запостил: lener, 02 Апреля 2010

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

    • показать все, что скрытоЧто значит работает? Результат работы всегда будет null
      Ответить
      • проверял? а если нет, так хоть посмотри внимательно )
        Ответить
      • показать все, что скрытоlener прав. результат работы разный
        Ответить
        • показать все, что скрытотолько вот null вернет даже если $this->params['pass'][1] вовсе не равно news
          Ответить
        • Результат работы разный в каких случаях? Такое ощущение, что друг друга мы не понимаем.
          Ответить
          • показать все, что скрытоиспользование функции isset .. вот где скрыт истинный ответ )
            Ответить
            • Эм, хорошо я понимаю что все дело в isset, что подразумевается под работает? Конструкция isset($this->params['pass'][1])?null:5; будет работать точно также.

              Интересно и чего мы тут обсуждаем...
              Ответить
              • просто кинуть код и рассказать в чем тут проблема ... неееет, попробуй заинтересовать людей ) теперь ты узнаешь из КОНКРЕТНОГО ответа где собака зарыта, ну или .. возможно ... это все таки поможет вспомнить тебе, чтото очень давно забытое ..
                Ответить
    • К.О. поясняет: если переменная установлена, isset() вернёт True. При сравнении True и "news" строка будет приведена к логическому типу, и значение будет True, так как строка не пустая и не "0". Естественно что True==True.
      Аналогично для False при неустановленной переменной.
      Ответить
      • если это не свойство класса в cakephp
        Ответить
      • Спасибо К.О.! Воть человек действительно шевелит мозгами .. нет ничего необъяснимого. В действительности все было завязано на типах )
        Эта глупая строка получилася в середине ночи, когда хотелось сделать все быстрее чем голова уже осмыслевала!
        +1 респект и уважуха )
        Ответить
      • Кэп, почему так долго??
        Ответить
      • Опередил.
        Ответить
    • Топик зла!
      Ответить
    • $limit = (isset($this->params['pass'][1]) == 'news')?null:5;
      $this->params['pass'][1] --- покуй..
      isset(покуй) --- покуй, но boolean..
      (boolean == 'news') --- всегда возвращает false
      (false)?null:5; --- всегда возвращает 5
      отсюда --- $limit = 5;
      Ответить
    • isset(по*уй) --- по*уй, но boolean..
      Ответить

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