- 1
- 2
В "PHP" одинарные кавычки быстрее, чем двойные.
https://habr.com/ru/company/alfa/blog/447416/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
В "PHP" одинарные кавычки быстрее, чем двойные.
https://habr.com/ru/company/alfa/blog/447416/
Какой анскилл )))
Этим можно воспользоваться в ненормальном программировании.
https://ideone.com/Gswsh5
Выводит: 01111
https://ideone.com/x0Wa7B
С одной стороны, print в качестве аргумента захватывает, сколько может захватить (почти как в «Бейсике»). Он жадный. В предыдущем примере я взял (print 2) в скобки, чтобы он не захватил оставшуюся часть формулы.
С другой стороны, print в «PHP» возвращает единицу, а перед этим в стандартный поток выводит строковое представление своего аргумента.
Итак, выражение эквивалентно следующему:
Сначала вызовется самый правый print и выведет 0.
Он вернёт 1, которую потом напечатает предпоследний print.
Он вернёт 1, которую потом напечатает предпредпоследний print.
Он вернёт 1, которую потом напечатает предпредпредпоследний второй слева print.
Он вернёт 1, которую потом напечатает предпредпредпредпоследний самый левый print.
Наконец, единица, которую вернул самый левый print, нигде не используется.
А если серьёзно, то как это работает?
Так как в двойных кавычках интерпретатор ищет переменные, чтобы можно было их без явной конкатенации в строку подставить. Одинарные же кавычки указывают ему, что это тупо строка, в которую ничего не надо подставлять.