От автора: в данной статье я хочу Вам дать 15 полезных советов php. Все советы взяты из моего личного опыта. Поэтому буду рад Вашим комментариям и критическим замечаниям как оценка моих трудов.
Оператор @ используется для скрытия ошибок при использовании или выполнении неких функций. Данным оператором не стоит пользоваться по двум причинам: он не оправдал себя в быстродействии, то есть медленный; автоматически блокирует все возникшие ошибки при выполнении функции, что есть нежелательным.
Важный совет PHP. Всем, кто все ещё работает с кодировкой cp1251 – срочно переходите на utf8!!! Т.к. множество функций по работе со строками поддерживает только utf8. И это только одна из причин.
Разработчики создали огромное количество функционала, которым грех не воспользоваться, но чтобы знать о всех прелестях php читайте phpmanual разработчиков.
<?php
//длинный код
if($a<b){
$msg = 'a<b';
}else{
$msg = 'a>b';
}
//короткий аналог кода
$msg = (a<b)? 'a<b': 'a>b';
?>
Одинарные кавычки быстрее чем двойные, ибо PHP ищет переменные внутри строк, заключенных в двойные кавычки. К тому же строки, заключенные в одинарные кавычки, визуально воспринимаются лучше. Когда вы хотите передать переменные в строку, то лучшей производительностью пользуются строки, обрамленные двойными кавычками.
При создании средних-больших по величине файлов, нужно учитывать быстродействие каждой строчки, каждой функции, ибо при выполнении большого сценария, это может сказаться на злоупотреблении ресурсами сервера, что есть не очень хорошо.
При работе с большим объемом данных в ходе выполнения сценария создается немалое количество переменных. Поэтому в определенный момент нужно удалять переменные, отчего и понятие удаления переменной можно сравнить скорее с очисткой переменной с помощью функции unset().
Также желательно использовать минимальное количество переменных для выполнения определенных инструкций. Потому что огромное обилие переменных снижает читабельность кода.
Рассмотрим пример:
// так писать не стоит $time = time(); $login = $_SESSION['login']; $hash = md5($login . $time); // если можно записать так $hash = md5($_SESSION['login'] . time());
Сначала пишем, потом оптимизируем Этот совет PHP применяется практически везде и во всем (это касается не только PHP, и программирование в целом). Не целесообразно оптимизировать, когда сценарий в процессе разработки. Ты не видишь всей картины в целом. Насколько, правда, это целесообразно, но я всегда набрасываю рабочий черновой вари-ант, а потом уже начинаю анализировать и добавлять или удалять элементы кода. Так же важно изначально все обдумать и написать толковый черновой вариант, иначе смысл его писать, если потом все придется переделывать практически с нуля. Извечная проблема начинающих кодеров состоит в том, что когда они перебирают массив в цикле for, они в каждой итерации используют функцию count(), которая подсчитывает количество элементов в массиве. Что опять-таки сказывает на быстродействии сценария. Ошибка:
for($i=0;$i < count($array);$i++){
//операторы
}
Куда лучше сразу занести в некую переменную количество элементов массива и больше не трогать её.
$elements = count($array);
for($i=0;$i < $elements;$i++){
//операторы
}
Всегда приходит момент, когда начинаешь работать со строками, а именно когда нужно сравнить длину строки с константой. И тут мы сразу обращаемся к функции strlen(), кото-рая возвращает количество символов в строке. Она сама по себе быстрая, ибо длина уже известная и функция просто извлекает её.
Рассмотрим пример, который мы потом более оптимизировано перепишем.
if (strlen($string) < 10) { echo "String is short"; }
Оптимизированный вариант:
if (!isset($string{10})) { echo "String is short"; }
Инкремент глобальной переменной в два раза медленнее, чем локальной.
Инкремент свойства объекта (т.е. $this->inc++) в три раза медленнее, чем локальной переменной.
Инкремент неопределённой переменной в 9-10 раз медленнее, чем заранее инициализированной.
Инкремент локальной переменной в методе — самый быстрый. Почти также работает инкремент локальной переменной в функции.
Читайте блоги любых программистов, желательно буржуйских. Подпишитесь на их рас-сылку. Изучайте их уроки, посты, заметки.
Пишите свое, пишите много своего. Придумывайте цели и достигайте их. И так через го-дик простого регулярного труда вы достигните успехов.
Просто садитесь каждый день, и по 60 минуток уделяйте PHP и все у вас получиться!