Более 50 трюков и советов по PHP для начинающих и разработчиков

PHP - самый полезный язык для создания блогов и веб-сайтов, он имеет множество функций, которые можно использовать для создания еще большего количества пользовательских функций. Мы собрали самое полезное Уловки и советы по PHP для начинающих и даже разработчики. Эти приемы PHP делают ваше кодирование более продуктивным и эффективным.

Более 50 трюков и советов по PHP для начинающих

Список приемов и советов по PHP

1. эхо быстрее печати.

2. Заключите строку в одинарные кавычки (') вместо двойных кавычек (») быстрее, потому что PHP ищет переменные внутри«… », а не в«… », используйте это, когда вы не используете переменные, которые нужно оценивать в вашем нить.

3. Используйте sprintf вместо переменных, заключенных в двойные кавычки, это примерно в 10 раз быстрее.

4. Используйте несколько параметров эха (или составные) вместо конкатенации строк.

5. Используйте предварительные вычисления, установите максимальное значение для ваших циклов for до, а не в цикле. то есть: for ($ x = 0; $ x <count ($ array); $ x), это вызывает функцию count () каждый раз, вместо этого используйте $ max = count ($ array) перед запуском цикла for.

6. Отмените установку или обнуление переменных, чтобы освободить память, особенно большие массивы.

7. Избегайте магии вроде __get, __set, __autoload.

8. По возможности используйте require () вместо require_once ().

9. Используйте полные пути в включаемых и требуемых, меньше времени тратится на разрешение путей ОС.

10. require () и include () идентичны во всех отношениях, кроме require (), останавливается, если файл отсутствует. С точки зрения производительности разница очень небольшая.

11. Начиная с PHP5, время начала выполнения скрипта можно найти в $ _SERVER ['REQUEST_TIME'], используйте это вместо time () или microtime ().

12. Регулярное выражение PCRE быстрее, чем EREG, но всегда проверяйте, можете ли вы вместо этого использовать более быстрые собственные функции, такие как strncasecmp, strpbrk и stripos.

13. При синтаксическом анализе с помощью XML в PHP попробуйте xml2array, который использует функции PHP XML, для HTML вы можете попробовать документ DOM PHP или XML DOM в PHP4.

14. str_replace быстрее, чем preg_replace, str_replace в целом лучше, однако strtr иногда быстрее с большими строками. Использование array () внутри str_replace обычно быстрее, чем несколько str_replace.

15. Операторы «else if» быстрее, чем операторы select, также известные как case / switch.

16. Подавление ошибок с помощью @ происходит очень медленно.

17. Чтобы уменьшить использование полосы пропускания, включите mod_deflate в Apache v2 или для Apache v1 попробуйте mod_gzip.

18. Закройте соединения с базой данных, когда закончите с ними.

19. $ row ['id'] в 7 раз быстрее, чем $ row [id], потому что, если вы не указываете кавычки, он должен угадать, какой индекс вы имели в виду, при условии, что вы имели в виду не константу.

20. Использование теги при объявлении PHP в качестве устаревших всех остальных стилей, включая короткие теги.

21. Используйте строгий код, избегайте подавления ошибок, уведомлений и предупреждений, что приводит к более чистому коду и меньшим накладным расходам. Подумайте о том, чтобы всегда был включен error_reporting (E_ALL).

22. Сценарии PHP обрабатываются Apache httpd в 2-10 раз медленнее, чем статическая страница. Попробуйте использовать статические страницы вместо скриптов на стороне сервера.

23. Скрипты PHP (если они не кешированы) компилируются "на лету" каждый раз, когда вы их вызываете. Установите продукт для кэширования PHP (например, memcached, eAccelerator или Turck MMCache), чтобы, как правило, повысить производительность на 25–100% за счет сокращения времени компиляции. Вы даже можете настроить eAccelerator на cPanel с помощью EasyApache3.

24. Альтернативный метод кэширования, когда у вас есть страницы, которые не меняются слишком часто, - это кэширование вывода HTML ваших страниц PHP. Попробуйте Smarty или Cache Lite.

25. По возможности используйте isset вместо strlen. (например: if (strlen ($ foo) <5) {echo «Foo слишком короткий»;} vs. if (! isset ($ foo {5})) {echo «Foo слишком короткий»;}).

26. ++ $ i быстрее, чем $ i ++, поэтому по возможности используйте предварительное приращение.

27. Используйте бесчисленное количество предопределенных функций PHP, не пытайтесь создавать свои собственные, так как встроенные функции будут намного быстрее; если у вас есть функции, отнимающие много времени и ресурсов, подумайте о написании их в виде расширений или модулей C.

28. Профилируйте свой код. Профилировщик показывает вам, какие части вашего кода и сколько времени занимают. Отладчик Xdebug уже содержит профилировщик. Профилирование дает обзор узких мест.

29. Задокументируйте свой код.

30. Узнайте разницу между хорошим и плохим кодом.

31. Придерживайтесь стандартов кодирования, это поможет вам понять код других людей, а другие люди смогут понять ваш.

32. Разделите код, контент и представление: держите код PHP отдельно от HTML.

33. Не беспокойтесь об использовании сложных шаблонных систем, таких как Smarty, используйте ту, которая уже включена в PHP, посмотрите ob_get_contents и extract, и просто извлеките данные из своей базы данных.

34. Никогда не доверяйте переменным, исходящим от пользователя (например, из $ _POST), используйте mysql_real_escape_string при использовании mysql и htmlspecialchars при выводе в формате HTML.

35. По соображениям безопасности никогда не имейте ничего, что могло бы раскрыть информацию о путях, расширениях и конфигурации, таких как display_errors или phpinfo () в вашем корневом веб-каталоге.

36. Отключите register_globals (по умолчанию он отключен неспроста!). Для сценариев на производственном уровне это не нужно, так как это представляет угрозу безопасности. Исправьте любые скрипты, которые требуют его включения, и исправьте любые скрипты, которые требуют его отключения, используя unregister_globals (). Сделайте это сейчас, так как он будет удален в PHP6.

37. Избегайте использования обычного текста при хранении и оценке паролей, чтобы избежать раскрытия, вместо этого используйте хеш, например хеш md5.

38. Используйте ip2long () и long2ip () для хранения IP-адресов в виде целых чисел, а не строк.

39. Вы можете не изобретать колесо, используя проект PEAR, предоставляя вам существующий код высокого стандарта.

40. При использовании заголовка ('Location:'. $ Url); не забудьте поставить за ним кубик (); поскольку сценарий продолжает выполняться, даже если местоположение изменилось, или по возможности старайтесь не использовать все вместе.

41. В ООП, если метод может быть статическим, объявите его статическим. Повышение скорости в 4 раза ..

42. Увеличение локальной переменной в методе ООП является самым быстрым. Почти то же самое, что вызов локальной переменной в функции и увеличение глобальной переменной в 2 раза медленнее, чем локальная переменная.

43. Увеличение свойства объекта (например, $ this-> prop ++) в 3 раза медленнее, чем у локальной переменной.

44. Увеличение неопределенной локальной переменной в 9-10 раз медленнее, чем предварительно инициализированной.

45. Простое объявление глобальной переменной без использования ее в функции замедляет работу (примерно на ту же величину, что и приращение локальной переменной). PHP, вероятно, проверяет, существует ли глобальный.

46. ​​Вызов метода не зависит от количества методов, определенных в классе, потому что я добавил еще 10 методов в тестовый класс (до и после тестового метода) без изменения производительности.

47. Методы в производных классах работают быстрее, чем методы, определенные в базовом классе.

48. Вызов функции с одним параметром и пустым телом функции занимает примерно столько же времени, что и выполнение 7-8 операций $ localvar ++. Вызов аналогичного метода, конечно же, составляет около 15 операций $ localvar ++.

49. Не все должно быть ООП, часто это просто накладные расходы, каждый вызов метода и объекта потребляет много памяти.

50. Никогда не доверяйте пользовательским данным, избегайте строк, которые вы используете в SQL-запросах, с помощью mysql_real_escape_string вместо mysql_escape_string или добавления косых черт. Также обратите внимание, что если magic_quotes_gpc включен, вы должны сначала использовать полосы косой черты.

51. Избегайте проблемы внедрения заголовка функции PHP mail ().

52. Отключите переменные базы данных (как минимум пароль), он вам не понадобится после подключения к базе данных.

53. RTFM! PHP предлагает фантастическое руководство, возможно, одно из лучших, что делает его очень удобным языком, предоставляет рабочие примеры и говорит на простом английском языке.

Это некоторые из приемов и советов по PHP, которые могут быть очень полезны для тех, кто только начал изучать язык PHP, а также для тех, кто с удовольствием занимается разработкой. Однако RTFM - самый эффективный способ изучить PHP.

Айшвар Баббер

Айшвар Баббер — страстный блогер и специалист по цифровому маркетингу. Он любит говорить и вести блог о новейших технологиях и гаджетах, что мотивирует его работать ГизмоБейс. В настоящее время он практикует свои знания в области цифрового маркетинга, SEO и SMO ​​в качестве штатного маркетолога в различных проектах. Он является активным инвестором в AffiliateBay и директор ImageStation.

22 мысли на тему «Более 50 трюков и советов по PHP для начинающих и разработчиков»

  1. Замечательный пост, эти советы и хитрости php очень помогают всем новым разработчикам php, и от него я также получил несколько советов и уловок php, о которых я пока вообще не знал.

    Ответить
  2. Отличные советы, но я думаю, вам следует изменить пункт 37. Простой хеш md5 на самом деле недостаточно сложен в мире, в котором мы живем.

    Ответить
  3. №15
    если / else быстрее, чем switch, вы правы, я провел несколько тестов,
    но вы должны подумать, в каком случае использовать переключатель.

    Я проехал на нем, протестировал 10,1000,100000 и 1 миллион циклов, и результат:
    за 100 тыс. циклов вы получите разницу в 0,13 с на локальном компьютере (на внешнем сервере разница должна быть меньше).

    Поэтому вам следует подумать об использовании if / else переключателя. Я предпочитаю использовать переключатель из-за более чистого кода. Использование 1 переключателя, 2 переключателя, даже 100 переключателей вместо if / else… это не имеет значения, это бессмысленно.

    Ответить
  4. №26
    я провожу тест сейчас,
    с $ i ++ и ++ $ i

    это просто - число 26 бессмысленно, пока вы не захотите использовать более 10 мил. циклы.
    А разница?

    10 мил циклов с $ i ++ 2.67448 с
    10 мил циклов с ++ $ i 2.605528 с

    Ответить
  5. 24. (…) Попробуйте Smarty или Cache Lite.
    33. Не беспокойтесь об использовании сложных шаблонных систем, таких как Smarty.

    ок.

    (Лично я бы просто удалил # 33; smarty (или другие системы шаблонов) имеет много преимуществ по сравнению с функциями ob_ ...)

    Ответить
  6. Echo быстрее, чем печать с помощью одного кода операции, так что на самом деле это не имеет значения. И print () - это функция, а echo - нет. Попробуй это:

    $ variable и print 'переменная установлена!';

    А насчет приращения: $ i + = 1; самый быстрый.

    Отличная статья, спасибо!

    Ответить
  7. Это хороший обзор некоторых трюков с PHP-кодом. Существенно, что разработчик также должен учитывать производительность кода, который он / она разрабатывает. Спасибо, что поделился.

    Ответить
  8. Здравствуйте, у него отличный контент, а php - очень крутой язык, я обязательно буду следовать этим трюкам, благодаря его особенностям, его очень легко понять и изучить.

    Ответить
  9. Отличная статья, спасибо, что поделились
    Отличные советы, но я думаю, вам следует изменить пункт 37. Простой хеш md5 на самом деле недостаточно сложен в мире, в котором мы живем.

    Ответить

Оставьте комментарий