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

0

  1. 1
  2. 2
В "PHP" одинарные кавычки быстрее, чем двойные.
https://habr.com/ru/company/alfa/blog/447416/

Какой анскилл )))

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

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

  • >> print дополнительно возвращает константу, равную 1

    Этим можно воспользоваться в ненормальном программировании.

    <?php echo ((print 2) << print '*') * ((print 2) << print '=');


    https://ideone.com/Gswsh5
    Ответить
        • говнокоду же: The function must take one parameter, a pointer to a pointer to a pointer to a pointer to a type compatible with copy-on-write.
          Ответить
        • Тут всё просто.

          С одной стороны, print в качестве аргумента захватывает, сколько может захватить (почти как в «Бейсике»). Он жадный. В предыдущем примере я взял (print 2) в скобки, чтобы он не захватил оставшуюся часть формулы.

          С другой стороны, print в «PHP» возвращает единицу, а перед этим в стандартный поток выводит строковое представление своего аргумента.

          Итак, выражение эквивалентно следующему:
          print (print (print (print (print 0))));

          Сначала вызовется самый правый print и выведет 0.
          Он вернёт 1, которую потом напечатает предпоследний print.
          Он вернёт 1, которую потом напечатает предпредпоследний print.
          Он вернёт 1, которую потом напечатает предпредпредпоследний второй слева print.
          Он вернёт 1, которую потом напечатает предпредпредпредпоследний самый левый print.

          Наконец, единица, которую вернул самый левый print, нигде не используется.
          Ответить
          • Сразу видно, что ты пэхапэшник. Ты понимаешь «PHP».
            Ответить
            • Да, но я ненормальный пехапэшник. Какому пэхапэшнику придёт в голову написа́ть print print print print ''; чтобы вывести число 111?
              Ответить
              • То ли дело 'j':
                (,~$$1r4x7e4blyadina)$(#$$2e7r7p2blyadvrotebal)!:(#,~4e8r5p4bydloneponimaet)&(>:$$$1r2e14blyadpetusharaebanaya),":&>(#$$$4p7r2e_1bashebashmetgashshemhamforashjohnatanbratashkrymnash)"_&.>(+&-&*&%/,~,~)#$$20057e2bkhryukneesveenosobaka
                111
                Ответить
                • Кто дочитал до конца (так же, как я), палец вверх!

                  А если серьёзно, то как это работает?
                  Ответить
  • Конечно быстрее, это и просто если подумать, то можно понять.
    Так как в двойных кавычках интерпретатор ищет переменные, чтобы можно было их без явной конкатенации в строку подставить. Одинарные же кавычки указывают ему, что это тупо строка, в которую ничего не надо подставлять.
    Ответить
  • спасибо

    благодаря этому совету я оптимизировал свое приложение и получил прирост в 9500%.
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8