PHP — серверный язык программирования, он отвечает за бэкенд — ту часть продукта, которую не видит пользователь. Например, когда покупатель нажимает кнопку «Оформить заказ», появляется сообщение, что оплата прошла и заказ начали собирать. Для этого сайт отправляет запросы разным сервисам: базе данных — она подтвердит наличие информации о пользователе, платёжным шлюзам — они вернут от банка ответ об оплате, сервису логистики — он сообщит, что товар есть на складе. Эта невидимая для пользователя работа может быть реализована с помощью кода, написанного на PHP.
Исследования говорят, что 76,4% всех сайтов в мире работает на PHP. В частности, его используют VK, корпоративный мессенджер Slack, платформа Etsy, Википедия и Spotify. PHP в этих проектах отвечает за:
● Лендинги и блоги. Позволяет создавать контент и управлять им: публиковать и редактировать статьи, изображения и комментарии.
● Интернет-магазины, онлайн-платформы для продажи товаров и услуг. РНР позволяет сделать так, чтобы можно было добавлять товары в корзину, оформлять заказы и обрабатывать платежи.
● Социальные сети. РНР отвечает за авторизацию, обмен сообщениями, создание профилей и управление контентом пользователей.
● Веб-приложения. Например, для CRM-системы с помощью PHP можно создать виджет для добавления контакта пользователя.
● Системы управления контентом. Например, на PHP написана платформа Wordpress.
В Практикуме есть курсы для разных направлений разработки, на которых можно получить базовые знания по программированию и научиться писать код с нуля. А если вы пока не определилсь со специализацией, пройдите наш бесплатный курс, где сможете познакомиться с разными профессиями, разберётесь с необходимыми навыками и узнаете об особенностях работы.
Чаще всего PHP используют для написания скриптов, которые работают на стороне сервера. Это позволяет обрабатывать данные форм, которые заполняет посетитель сайта, отсылать и принимать cookies и т. д. Рассмотрим возможности языка:
● Интеграция с базами данных. PHP совместим с большинством современных баз данных. Например, с реляционными, которые хранят данные в формате таблиц — MySQL, PostgreSQL, и нереляционными, где данные хранятся в формате «ключ-значение» — MongoDB, Redis.
● Разработка систем управления контентом. C помощью них можно добавлять и обновлять содержимое сайта без помощи разработчиков. PHP используют, чтобы расширять функциональность систем.
● Создание изображений в форматах GIF, JPEG или PNG с помощью специальной библиотеки — GD.
● Работа с FTP-серверами — приложениями, которые позволяют хранить и передавать файлы. С помощью PHP можно отправить изображения на сервер, загрузить обновлённый файл на сайт, удалить и переименовать его. С помощью PHP можно также изменить права доступа к учётным данным и этим обеспечить их безопасность.
● Работа с cookie — файлами, которые собирают данные пользователей: количество посещений, переходы между страницами и т. д. Их часто используют маркетологи, чтобы идентифицировать посетителей сайта и создавать для них персонализированные предложения товаров и услуг. С помощью PHP можно легко считать cookie-файл из браузера.
PHP подходит для веб-разработки лучше, чем любой другой язык, но это и минус: для разработки, например, в сфере геймдев или машинного обучения придётся учить новый язык. Другие преимущества и недостатки — в таблице.
Разберём три основных свойства языка РНР:
1. Объектно-ориентированный язык, поддерживает идеологию ООП — объектно-ориентированного программирования. Объекты — сущности, у которых есть данные и методы для работы с ними. Например, у объекта «книга» в библиотеке может быть название, автор и жанр, а также методы для вывода информации о ней. Данные объекта скрыты и доступны только через его методы. Это помогает обеспечить безопасность данных и уменьшить связанность между различными частями программы.
Например, сайт на PHP c видео предлагает методы для управления списком избранных роликов — добавить или удалить из подборки. Класс — это шаблон кода для создания объектов, который определяет структуру и его поведение. Новые классы можно создать на основе существующих так, что они будут наследовать свойства и методы родительского класса. Это позволяет повторно использовать код.
В этом коде сначала завели класс «книга», затем добавили для него свойства и методы. Теперь новую книгу в библиотеке можно заводить одной строкой
2. Возможность интерпретации. РНР можно сразу запустить на большинстве платформ и операционных систем, не устанавливая отдельный компилятор, который запустит код. Это делает язык более доступным и простым для начинающих разработчиков.
Недостатки: код обрабатывается на сервере построчно, затем результаты отправляются пользователю. Каждый раз, когда пользователь запрашивает страницу, сервер обрабатывает PHP-код заново. Это замедляет загрузку, особенно если код сложный. Но если его оптимизировать и настроить сервер, можно сделать сайт более быстрым.
3. Динамическая типизация. Переменные в PHP могут автоматически менять свой тип данных в процессе выполнения программы, в зависимости от того, какие данные им присваиваются. Представим, что переменная $x сначала содержит число, а потом текст:
С одной стороны, это удобно: не нужно явно указывать тип переменной при её объявлении и можно использовать одну и ту же переменную для различных типов данных в разное время. Но динамическая типизация может привести к ошибкам в коде. Например, если ожидается, что $x всегда будет числом, но он становится строкой. Это может вызвать ошибку или нестандартное поведение программы.
В современных версиях возможность неожиданных результатов от динамической типизации меньше.
Синтаксис языка PHP может освоить даже начинающий разработчик, а если он знаком с языками C или Java, будет ещё проще: синтаксис этих языков похож. Разберём основные моменты:
● Код обычно размещается между открывающим тегом <?php и закрывающим ?>. Эти теги сообщают интерпретатору, что код между ними должен быть интерпретирован как PHP-код. Всё, что находится за пределами этих тегов, считается HTML или текстом и будет выведено напрямую на страницу.
● Объявление переменных происходит через $. Например, в этой части кода мы создаём две переменные: $name (содержащую строку) и $age (содержащую число):
● Для вывода текста на экран используют оператор echo. В этом примере выводим приветствие с использованием значений переменных $name и $age:
● Для проверки условия, например соответствия возрасту 18, используют оператор if:
● Цикл for используют для вывода нескольких строк текста:
● За возвращение аргументов в функциях языка PHP отвечает ключевое слово return. За ним следует значение или значения, которые функция должна вернуть. Они могут быть любого типа данных: числа, строки, массивы, объекты.
Пример функции, которая принимает два аргумента и возвращает их сумму
В этом примере return $a + $b; означает, что функция add() возвращает сумму двух переданных ей аргументов $a и $b. Когда эта функция вызывается в другом месте программы, результат её выполнения может быть присвоен переменной или использован для других целей.
Здесь переменной $result будет присвоено значение 5, потому что функция add(2, 3) возвращает сумму аргументов 2 и 3. После этого значение переменной $result выводится на экран с помощью оператора echo.
Конкуренты PHP более универсальны: например, Java можно использовать для разработки ПО на уровне операционной системы, Python — для машинного обучения, а Golang — для параллельной обработки нескольких процессов в одном приложении. Преимущества PHP перед другими языками — широкая известность и большая библиотека фреймворков.
Всего у PHP вышло 8 версий, самая свежая — 8.3. Примерно до 5-й версии релизы сильно отличались — разработчикам приходилось изучать новые версии, как новый язык.
Начиная с версии 7 в язык добавили type hinting, или подсказку типов. Теперь разработчик может указывать тип данных для аргументов функций, возвращаемых значений и свойств классов и тем самым установить ожидаемый тип данных и предотвратить нежелательные результаты из-за динамической типизации.
В разработке чаще всего используют версию 7.4 и старше. Рассмотрим их подробнее:
● В PHP 7.4 стали доступны стрелочные функции, что делает код более кратким и понятным. Введён оператор ??=, облегчающий работу с переменными, которые могут быть null.
Большая часть веб-приложений использует 7-е версии PHP. Источник
● В PHP 8 можно более строго указывать типы данных в функциях и методах, что помогает предотвратить ошибки. Появились новые способы управления данными в коде.
● В PHP 8.1 появились «Enum» или «Перечисления». Допустим, есть коробка, в которой могут быть только определённые предметы. В версии PHP 8.1 можно создать объекты, которые гарантируют: других предметов в коробке не будет. Например, при разработке системы заказов с помощью enum можно присвоить статусам заказов значения: новый, обрабатывается, выполняется, завершён.
С enum код становится более читаемым и понятным: другие разработчики могут сразу видеть, какие значения или свойства могут быть у переменной.
● PHP 8.2 и 8.3 в основном фокусировались на улучшении функциональности и производительности языка.
Совет эксперта
Читать также: