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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class this {
    
    public function this()
        {
    	  $this->this[$this] !==  $this->this();
       }
    }

    Запостил: zadrot, 20 Сентября 2014

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

    • - Привіт, куме! Як там як?
      - Як як? Як, як як!...
      Ответить
    • namespace this;
      use this\this as this;


      P.S. Неймспейсы в PHP сделали настолько плохо, что лучше ими не пользоваться. Совсем. Никогда.
      Ответить
      • PHP сделали настолько плохо, что лучше им не пользоваться. Совсем. Никогда.

        Починил.
        Ответить
        • ты не починил, ты просто 2 слова убрал.
          Ответить
        • Питоном лучше тоже не пользоваться. Стёр пробел — ничего не работает.
          Ответить
          • сильно преувеличенная проблема
            Ответить
          • да ладно, ты ж не в блокноте пишешь обычно.
            Ответить
          • Если в виндовом блокноте или copy con file.py писать - действительно, проблема.
            Ответить
            • Вставил в сообщение на сайте питонокод, а он сломался. Не дай Бог, если писал его прямо в сообщении ради какого-нибудь холивара.

              def f(x):
              return x*x # ниработает!
              Ответить
              • На деле точки с запятыми в сишкоподобных языках я забываю гораздо чаще, чем ошибаюсь с отступами в пистоне.

                В emacs, например, для питоньего мода таб перегружен - он крутит возможные варианты отступа на текущей строке.
                Ответить
                • > На деле точки с запятыми в сишкоподобных языках я забываю гораздо чаще, чем ошибаюсь с отступами в пистоне.
                  Охотно верю.
                  У меня ещё после переключения с жс возникает микробугурт, когда я вижу ошибки компиляции или красное в IDE.
                  "Надо же, из-за какой-то запятой весь код поехавший."
                  Ответить
      • и psr-0 автолоадом никогда не пользоваться? Разбросать случайным образом в неожиданных местах инклуды?
        Ответить
        • Я серьёзно. Создаём произвольный пхп-файл, содержащий объявление неймспейса, и получаем сообщение:
          PHP Fatal error:  Namespace declaration statement has to be the very first statement in the script

          Совершенно очевидным путём узнаём, что сообщение вызвано тем, что в начале файла стоит BOM. Удаляем BOM, и всё работает.

          Как можно в ЯП вводить конструкции, работоспособность которых зависит от наличия BOM?
          Ответить
          • Это проблема вашего редактора. Тем более хорошо, что ругается, ибо к свиням собачим этот BOM.
            Ответить
            • Да, но интерпретатор не пишет прямым текстом, в чём именно проблема. Попробуйте угадать, что означает “very first statement”, и почему это требование не удовлетворено.
              Ответить
              • че там гадать то

                обьявление неймспейса должно быть самым первым выражением в скрипте
                Ответить
              • Ну предупреждать надо-бы... Но многие другие штуки тоже ломаются из-за него и тоже не предупреждают.
                Ответить
          • > в начале файла стоит BOM
            Из-за этого еще отправка хедеров поломается.
            Ответить
            • Не ломается. Пых отправляет BOM после всех хедеров. Даже после тех, которые отправляет функция header().
              Ответить
              • Ну х.з., у меня header() и session_start() не работали из-за BOM'а. Но это было давно и под виндой...
                Ответить
                • А у меня под виндой работают... Может быть, в какой-то древней версии было по-другому?
                  Ответить
                  • Может буферизация какая-нибудь отключена была у меня?
                    Ответить
              • без буферизации ломаются 146%
                Ответить

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