15 полезных советов в PHP.

25.01.2011 Рубрика: Обучение \ PHP

php советы

От автора: в данной статье я хочу Вам дать 15 полезных советов php. Все советы взяты из моего личного опыта. Поэтому буду рад Вашим комментариям и критическим замечаниям как оценка моих трудов.

автор

Автор: Влад Паук

Живет в Киеве, столице Украины. Веб-программист-самоучка – ещё со школьных год занялся программированием на PHP. Хорошо владеет JavaScript (и фреймворк jQuery) и учит, на данный момент, Java+Oracle. Вольно владеет версткой HTML + CSS.

Сайт: http://gromit.su – «Веб-программирование своими руками»

Не использовать @

Оператор @ используется для скрытия ошибок при использовании или выполнении неких функций. Данным оператором не стоит пользоваться по двум причинам: он не оправдал себя в быстродействии, то есть медленный; автоматически блокирует все возникшие ошибки при выполнении функции, что есть нежелательным.

Забыть об cp1251

Всем, кто все ещё работает с кодировкой cp1251 – срочно переходите на utf8!!! Т.к. множество функций по работе со строками поддерживает только utf8. И это только одна из причин.

Читайте phpmanual

Разработчики создали огромное количество функционала, которым грех не воспользоваться, но чтобы знать о всех прелестях php читайте phpmanual разработчиков.

Самый лучший код – там, где его меньше

<?php
//длинный код
if($a<b){
$msg = 'a<b';
}else{
$msg = 'a>b';
}
//короткий аналог кода
$msg = (a<b)? 'a<b': 'a>b';
?>

Используйте одинарные кавычки

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

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

Приведу простые примеры оптимизации:

Echo быстрее, чем print

Как можно чаще освобождайте память

require_once не так уж и хорош

str_replace быстрее, чем preg_replace

Избегайте регулярок, лучше использовать строковые функции, они быстрее

Как можно больше кэшируйте

Не всё должно быть ООП

mod_gzip — модуль Apache, который позволяет сжимать ваши данные на лету и может уменьшить объем передаваемых данных до 80%

Что такое освобождение памяти?

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

Также желательно использовать минимальное количество переменных для выполнения определенных инструкций. Потому что огромное обилие переменных снижает читабельность кода.

Рассмотрим пример:

// так писать не стоит
$time = time();
$login = $_SESSION['login'];
$hash = md5($login . $time);

// если можно записать так
$hash = md5($_SESSION['login'] . time());

Сначала пишем, потом оптимизируем

Это правило применяется практически везде и во всем (это касается не только PHP, и программирование в целом). Не целесообразно оптимизировать, когда сценарий в процессе разработки. Ты не видишь всей картины в целом.

Насколько, правда, это целесообразно, но я всегда набрасываю рабочий черновой вари-ант, а потом уже начинаю анализировать и добавлять или удалять элементы кода. Так же важно изначально все обдумать и написать толковый черновой вариант, иначе смысл его писать, если потом все придется переделывать практически с нуля.

Извечная проблема начинающих кодеров состоит в том, что когда они перебирают массив в цикле for, они в каждой итерации используют функцию count(), которая подсчитывает количество элементов в массиве. Что опять-таки сказывает на быстродействии сценария.

Ошибка:

for($i=0;$i&amp;amp;lt;count($array);$i++){
//операторы
}

Куда лучше сразу занести в некую переменную количество элементов массива и больше не трогать её.

$elements = count($array);
for($i=0;$i&amp;amp;lt;$elements;$i++){
//операторы
}

Всегда приходит момент, когда начинаешь работать со строками, а именно когда нужно сравнить длину строки с константой. И тут мы сразу обращаемся к функции strlen(), кото-рая возвращает количество символов в строке. Она сама по себе быстрая, ибо длина уже известная и функция просто извлекает её.

Рассмотрим пример, который мы потом более оптимизировано перепишем.

if (strlen($string) &amp;amp;lt; 10) { echo &amp;amp;quot;String is short&amp;amp;quot;; }

Оптимизированный вариант:

if (!isset($string{10})) { echo &amp;amp;quot; String is short&amp;amp;quot;; }

Поговорим об инкрементах:

Инкремент глобальной переменной в два раза медленнее, чем локальной.

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

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

Инкремент локальной переменной в методе – самый быстрый. Почти также работает инкремент локальной переменной в функции.

Заключение: не ленитесь читать и писать, писать и ещё раз писать

Читайте блоги любых программистов, желательно буржуйских. Подпишитесь на их рас-сылку. Изучайте их уроки, посты, заметки.

Пишите свое, пишите много своего. Придумывайте цели и достигайте их. И так через го-дик простого регулярного труда вы достигните успехов.

Просто садитесь каждый день, и по 60 минуток уделяйте PHP и все у вас получиться!

киберсант-вебмастер

Автор: Влад Паук

Редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

E-mail: contact@webformyself.com

Проект webformyself.com – Как создать свой сайт. Основы самостоятельного сайтостроения

P.S. Хотите опубликовать интересный тематический материал и заработать? Если ответ «Да», то жмите сюда.

Подписаться Поделиться

Метки:

Комментарии (32)

  1. Виктор

    Отлично,ребята,как и все предыдущее!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  2. Отец Виктор

    Спасибо, поучительно. Пробую разобраться.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  3. Виталий

    Весь Ваш материал очень полезен и легко воспринимается. Спасибо.

    Нравится или не нравится: Thumb up 1 Thumb down 0

  4. Евген

    Отличная статья!!!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  5. Alexd

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

    Нравится или не нравится: Thumb up 0 Thumb down 0

  6. Василий

    Спасибо. Полезный материал.Попробую применить.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  7. Олег

    Отлично! Мне понравилось.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  8. Сергей

    Здорово. Материал отличный, важные элементы для таких как я новичков. Согласен терпение и труд все перетрут.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  9. Ильдар

    Слышал об этом авторе. У него большое будущее.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  10. Станислав

    Спасибо! Пытаюсь освоить и разобраться.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  11. Sergiu

    Веб-программист-самоучка – ещё со школьных год занялся ????!!!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  12. Юрий

    Спасибо за прекрасные материалы. Успехов и удачи!!!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  13. Денис

    Здорово! Спасибо за труд! Автор Респект!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  14. Ольга

    Мальчикам легко! А вот мне очень трудно. Просмотрела работу и поняла, что 100 потов сойдет, пока одолею.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  15. Андрей

    Не понял чем лягушка вам не угодила. Иногда скрыть ошибки от глаз посетителей очень важно, еще я пользуюсь часто функцией
    require_once и считаю что она очень полезная?
    В основном статья понравилась

    Нравится или не нравится: Thumb up 0 Thumb down 0

  16. Devil_Shurik

    Спасибо за полезный материал.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  17. Саша

    подскажите пжл что это значит, первый раз такое встречаю
    &amp;lt;
    echo &amp;quot; String is short&amp;quot;; (особенно 2 ;; в конце)

    Спасибо!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  18. Олег

    Я только начал изучение php многое не понятно,но ваши статьи помогают )_;

    Нравится или не нравится: Thumb up 0 Thumb down 0

  19. Вадим

    Сказали «а» – говорите и «б». На каких буржуйских блогеров стоит подписаться?

    Нравится или не нравится: Thumb up 0 Thumb down 0

  20. василий

    Мне нравится все понятно.Я как раз начал изучать .Спасибо.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  21. Ольга

    Спасибо за советы. Пока все это «китайская грамота». Если возникнут вопросы, обязательно напишу.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  22. Юля Трикоз

    http://gromit.su Сайт Влада Паука не работает. А по статье ничего сказать не могу, php не знаю, делала сайт на Джумле, и на Вордпрессе, но ничего особенного, по обычным шаблонам. В общем, чайник я. Но интересно посмотреть, что это за зверь php.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  23. Михаил

    Как всегда, полезная статья, кое-какие выводы сделал.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  24. nikjar215 (Николай)

    Молодцы! Очень умнО, но для меня, как в лесу, темно!
    Так что извините, Начальник, я ещё изучаю «Античайник». ;-) )
    Вот пройдёт годика два, – поумнею я тогда… ;-) )))

    Нравится или не нравится: Thumb up 0 Thumb down 0

  25. Jandos

    молодцы ребята!!! Респект Вам с Алматы! Прекрасные советы! Респект за богатые программные решения!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  26. николай

    Влада паука незнаю.За статью спасибо.От Макса получаю только толковые вещи.Испытаю эти новые знания как поумнею . Пока чайник.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  27. Наталия

    Спасибо!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  28. Наталия

    Большое спасибо! Пока не всё понятно, но буду стараться разобраться. Мне это интересно.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  29. Станислав

    Большое спасибо за Ваши советы!

    Нравится или не нравится: Thumb up 0 Thumb down 0

  30. billi19591

    Может быть, Вы подскажете, как изменить кодировку на компьютере? Если можно, пожалуйста, подробно, а то я в этом пока плохо разбираюсь. Дело в том, что одни файлы открываются и устанавливаются нормально, а в других появляются «козябрики». Заранее спасибо. С ув. Юрий.

    Нравится или не нравится: Thumb up 0 Thumb down 0

  31. vasya

    ну и муть…

    Нравится или не нравится: Thumb up 0 Thumb down 0

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Я не робот.

Spam Protection by WP-SpamFree