О возможностях PHP и встроенных функциях для ежедневного использования
Всем доброго дня! Продолжаем изучать наш любимый PHP. Сегодня вы узнаете об основных функциях PHP, которые понадобятся вам в первую очередь.
Возможности языка
Позвольте мне сделать краткое лирическое отступления и рассказать, что на PHP можно писать не только сайты. Его можно использовать и для создания оконных (десктоп) приложений или консольных приложений, которые будут работать как и любое другое приложение Windows, пользователям не понадобиться для этого браузер, а вам не понадобиться сервер. Конечно, PHP является далеко не лучшим выбором для создания десктоп приложений, однако такая возможность есть.
Кроме этого PHP, помимо создания web-страничек (HTML), может генерировать настоящие PDF файлы, XML, изображения, диаграммы и даже Flash ролики. Вдобавок к сохранению всего вышеперечисленного на жёсткий диск, PHP может генерировать и отдавать файлы пользователям "на лету", без сохранения их куда-либо.
В прошлых статьях мы узнали, что такое функции, зачем они нужны и как создавать собственные. Но на самом деле не стоит спешить писать собственные функции, ведь в PHP уже есть сотни встроенных функций, которые станут вашими незаменимыми и надёжными помощниками при разработке веб-приложений.
Так как среди моих читателей многие делают сайты на популярных CMS (Joomla, Wordpress и других), а также многие из них мало знакомы с PHP и программированием в целом, то спешу объяснить, что встроенные функции PHP можно использовать в любой CMS, в любом месте! И при этом от вас не требуется ничего настраивать и устанавливать дополнительно, так как встроенные функции, в отличие от пользовательских, вшиты в ядро PHP и никуда от туда деться не могут.
Список всех встроенных функций и возможностей PHP в целом можно узнать на официальном сайте: http://php.net в разделе документации. Но прежде чем вы ринетесь изучать документацию или продолжите чтение данной статьи, я должен объяснить вам, как пользоваться документацией, причём документацией не только по PHP, но и любого другого языка программирования.
Как пользоваться документацией по PHP
Предлагаю рассмотреть всё на примере упомянутой в прошлой статье функции count():
Как комментарий к картинке хочу отметить, что тип аргумента mixed – означает, что можно передавать несколько различных типов, но это не значит, что разрешено передавать любой тип. Какие именно типы можно передавать в каждую конкретную функцию читайте в более подробном описании к ней.
Что означает та или иная константа, установленная как значение по умолчанию, также нужно читать в полном описании к функции.
А теперь, встречайте список функций, которые вам обязательно пригодятся!
Основные функции PHP
Функции для работы с типамиgettype() - Возвращает тип переменной. Возможными значениями возвращаемой строки являются:
- "boolean"
- "integer"
- "double" (по историческим причинам в случае типа float возвращается "double")
- "string"
- "array"
- "object"
- "resource"
- "NULL"
- "unknown type" – неизвестный тип
Вообще функцию gettype используют вместе с echo, для вывода типа переменной на экран. Если вам нужно проверить тип и в зависимости от результата пустить код по той или иной ветке (с помощью оператора if), используйте функции is_, о них дальше.
settype() - Присваивает переменной новый тип.
Допустимыми значениями типа являются:
- "boolean" (или "bool")
- "integer" (или "int")
- "float" (или "double")
- "string"
- "array"
- "object"
- "null"
Функции is_array(), is_bool(), is_float(), is_int(), is_null(), is_string(), is_numeric() - определяют, является ли переменная тем или иным типом.
Приведение типовДопускаются следующие приведения типов:
- (int), (integer) - приведение к целому числу
- (bool), (boolean) - приведение к true или false
- (float), (double), (real) - приведение к числу с плавающей точкой (например: 56.83452)
- (string) - приведение к строке
- (array) - приведение к массиву
- (object) - приведение к объекту
- (unset) - приведение к NULL (появилось в PHP 5)
Следующие 2 функции: isset() и empty() – лично я очень люблю и использую очень часто.
Переменная считается пустой, если она:
- "" или '' (пустая строка)
- 0 (целое число)
- 0.0 (дробное число)
- "0" (строка)
- NULL
- FALSE
- array() (пустой массив)
- var $var; (переменная объявлена, но не имеет значения в классе)
Возвращает TRUE, если переменная пустая или FALSE, если переменная не пустая.
Сравнение типов и значений, возвращаемых функциями, о которых мы говорили выше:
Для работы с массивамиcount() - Считает количество элементов массива или количество свойств объекта.
print_r() - Выводит удобочитаемую информацию о переменной (в том числе о массивах и объектах):
var_dump() - Выводит более полную информацию о переменной (в том числе о массивах и объектах), по сравнению с print_r.
Функции для манипулирования указателем массива:
Хочу обратить ваше внимание на функцию array_shift(), её можно использовать как просто для удаления первого элемента массива, так и для его сохранения в переменную, перед удалением. При этом все числовые ключи будут изменены таким образом, что нумерация массива начнётся с нуля, в то время как строковые ключи останутся прежними, благодаря чему пользоваться этой функцией очень удобно.
Если вам нужно удалить или извлечь с удалением последний элемент массива, используйте функцию array_pop(). Её работа полность аналогична работе функции array_shift().
array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс.
in_array() - Проверяет, присутствует ли в массиве значение.
array_keys() - Возвращает все или некоторое подмножество ключей массива.
array_values() - Выбирает все значения массива.
array_merge() - Сливает один или большее количество массивов в один.
array_diff() - Вычисляет расхождение массивов.
array_intersect() - Вычисляет схождение массивов.
Сортировка массивовsort() - Эта функция сортирует массив. После завершения работы функции элементы массива будут расположены в порядке возрастания.
ksort() - Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Эта функция полезна, в основном, для работы с ассоциативными массивами.
asort() - Эта функция сортирует массив таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.
rsort() — Сортирует массив в обратном порядке.
arsort() — Сортирует массив в обратном порядке, сохраняя ключи.
krsort() — Сортирует массив по ключам в обратном порядке.
natsort() — Сортирует массив, используя алгоритм "natural order".
natcasesort() — Сортирует массив, используя алгоритм "natural order" без учета регистра символов.
usort() — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов.
uksort() — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей.
uasort() — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей.
Математические функцииmax() - Находит наибольшее значение.
min() - Находит наименьшее значение.
rand() - Генерирует случайное число.
round() - Округляет число типа float.
ceil() - Округляет дробь в большую сторону.
floor() - Округляет дробь в меньшую сторону.
Функции обработки строкsubstr_count() - Возвращает число вхождений подстроки (указанной строки).
rtrim, ltrim, trim() - Удаление пробелов (или других символов) из начала и (или) конца строки.
strtolower, strtoupper() - Преобразование строки в нижний или верхний регистр.
lcfirst, ucfirst() - Преобразование первого символа строки в нижний или верхний регистр.
substr() - Возвращает подстроку (часть строки).
number_format() - Возвращает отформатированное число, можно получить различный вид числа, например: 123,234.56
str_replace() - Заменяет все вхождения строки поиска на строку замены.
explode() – Разбивает строку на подстроки в массив. В роли разделителя выступает заданный символ или строка. Каждая разбитая подстрока (часть строки) – это ячейка массива.
implode() - противоположность explode(). Функция склеивает массив в одну строку.
Функции для работы с датой и временемgetdate() - Возвращает ассоциативный массив (array), содержащий информацию о дате, представленной меткой времени timestamp, или текущем системном времени, если timestamp не был передан. Пример:
time() - Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) до текущего времени. Результатом будет что-то типа 1234567890.
date() - Возвращает строку со временем, отформатированную в соответствии с указанным форматом, используя метку времени, заданную аргументом timestamp или текущее системное время, если timestamp не задан.
strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix. Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени относительно метки времени, переданной в now, или текущего времени, если аргумент now опущен. Примеры использования:
Заключение
Конечно же, при разработке используется ещё большое множество других встроенных функций PHP, однако функции, которые я перечислил выше, скорее всего, понадобятся вам в первую очередь. Учить наизусть их не нужно, вполне достаточно просто знать об их существовании и при необходимости уметь быстро найти информацию о том, как их использовать. В ходе постоянной практики вы автоматически их запомните.