Эта статья не является вопросом, но может быть полезно поделиться некоторыми советами по кодированию.
Вот я хочу поделиться с вами. Я собираюсь показать 4 примера, которые делают то же самое. Но только последний будет лучшим.
$foo = 'John SMITH'; echo "Hello $foo, welcome on my website."; echo "Hello " . $foo . " welcome on my website."; echo 'Hello ' . $foo . ' welcome on my website.'; echo 'Hello ', $foo , ' welcome on my website.';
Я уверен, что вы все знаете, что echo '$foo'
не будет работать, но все же я уверен, что вы используете двойную кавычку для отображения простой информации. Это плохо .
Ну, давайте начнем: первый из них плох (а также второй), потому что использование двойной кавычки заставляет php сканировать строку, чтобы искать подстановку (я имею в виду переменную).
Второй – немного лучше, так как php не имеет замены.
Третий, лучше из-за простой цитаты, так что язык знает, что он может просто отправить текст без обработки, но «плохая» вещь – это использование конкатенации (оператор точки, как во втором примере).
Последний использует простую цитату и оператор комы. Почему это решение лучше?
Хорошо, что происходит при использовании третьего решения?
php создает строку, содержащую "Hello "
, затем она должна ее увеличить, чтобы добавить содержимое переменной foo («John SMITH»), а затем снова увеличить ее, чтобы добавить " Welcome on my website."
предложение. Тогда echo
может использовать это, чтобы … эхо его 🙂
Принимая во внимание, что в 4-м, единственное, что нужно сделать для echo
– это отправить «Hello», затем содержимое $ foo, затем «Добро пожаловать на мой сайт». к выходу, и это все! Поскольку эхо просто необходимо отправить текст, не создавая строку, которую нужно будет увеличить, чтобы содержать весь текст (который был бы вогнутым, который должен быть выращен (из-за конкатенации), а затем отображаться.
Я попытаюсь найти некоторые ориентиры и поместить их сюда.
Не стесняйтесь комментировать или реагировать, и извините мой английский, это не мой родной язык.
Совершенно неуместно, какое решение работает лучше. Компьютеры быстро растут, а циклы CPU дешевы, поэтому оптимизация в миллисекундах бессмысленна. Единственная реальная оптимизация – это то, что помогает быстрее читать код, поэтому вы можете сэкономить драгоценное время и сосредоточиться на фактическом предоставлении рабочего кода.
Создание небольшого (но все еще сосательного 🙂 теста и его выполнения дает следующие результаты:
0.0022029876709 0.00211095809937 0.00213599205017 0.00551700592041
Последний метод, безусловно, самый медленный.
Три правила оптимизации:
Сохраните его для LAST, что вы делаете, только после того, как узнаете, где замедление.
В противном случае вы, так сказать, поместите телегу перед лошадью.
На практике это почти всегда не будет вашим основным узким местом.
http://www.procata.com/blog/archives/2005/03/08/microbenchmarks-of-single-and-double-qouting/
Это не стоит. У вас может быть некоторое ускорение на 0,1% (не воспринимайте его буквально, незначительное ускорение) для всего вашего приложения, даже если вам удастся сделать конкатенацию строк быстрее на 30%. Большая часть времени будет потрачена на запросы БД или более сложную логику.