PHP (Hypertext PreProcessor, «препроцессор гипертекста») — это скриптовый язык программирования. Имеет открытый исходный код. Изначально создавался для разработки веб-приложений, но в процессе обновлений стал языком общего назначения.
Язык программирования PHP спроектировал датский программист Расмус Лердорф в 1995 году как инструмент для создания интерактивных и динамических веб-сайтов. Расшифровывается как «Hypertext Preprocessor» (гипертекстовый предобработчик). Сейчас PHP активно используют веб-разработчики для создания сайтов и веб-приложений. Это наименее конкурентный язык для работы. Его использует большинство сервисов, и, скорее всего, ситуация не изменится в ближайшие 10 лет. Поэтому специалисты очень востребованы.
Основная область применения — разработка скриптов, которые работают на стороне сервера. Также можно создавать скрипты командной строки и GUI-приложения (приложения с графическим интерфейсом пользователя).
PHP используется в проектах разных масштабов: от браузерной игры и социальной сети до крупных веб-приложений в интернете, таких как Facebook, ВКонтакте, Google, W3C, Yahoo, NASA. На PHP написаны многие системы управления контентом (CMS), например Drupal, WordPress, Joomla. Также он использовался при разработке популярных фреймворков для создания сайтов, например Yii2, Laravel, Symfony.
PHP — язык с динамической типизацией. Это означает, что переменная не определяется жестко и заранее (если число, то int, если строка — string). Динамическая типизация позволяет присваивать одной и той же переменной несколько значений: она может быть массивом, строкой, числом, объектом и т. д. Динамическая типизация удобная и гибкая, но приводит к потреблению большого количества оперативной памяти и уменьшает скорость работы.
Также PHP — интерпретируемый язык. Это означает, что код, который написан на PHP, не компилируется (преобразуется в машинный), а выполняется строка за строкой с помощью программы-интерпретатора, которая читает каждую из них и выполняет то, что там указано.
Возможности Вот некоторые из ключевых возможностей PHP:
CSS- и НТМL-файлы, как и файлы изображений, сервер отправляет сразу клиенту (браузеру), независимо от содержания. В отличие от них PHP-файлы содержат код, который интерпретируется на сервере. Клиент (браузер) получает не сам PHP-код, а результат его исполнения, который, как правило, является чистым CSS и HTML. Пользователь не может увидеть исходный код программы. Это хорошо с точки зрения безопасности, так как в этом случае трудно понять логику сайта.
PHP хранит состояние, созданное в текущий момент времени. В отличие от классических компилируемых языков программирования, которые работают все время от запуска до остановки программы, PHP-скрипт начинает выполняться с момента обращения веб-сервера и заканчивает (забывает все, что знал), когда возвращает сгенерированный пакет данных обратно веб-серверу.
PHP 3.0. Первая версия, напоминающая современный интерпретатор, вышла в 1997 году. Главное преимущество — возможность расширения ядра и добавления дополнительных модулей сторонними разработчиками. В версии 3.0 появилась поддержка ООП-синтаксиса. Также был усилен и сам синтаксис языка.
PHP 4.0. Появилась в 2000 году и получила обновленный движок Zend Engine (название сложилось из имен его создателей — владельцев Zend Technologies). Значительно улучшилась производительность. Версия стала поддерживать больше серверов и HTTP-сессий. Обработка вводимой пользователем информации стала безопаснее. Были созданы несколько новых языковых конструкций.
PHP 5.0. Вышла в 2004 году. Появлению предшествовали серия пререлизов и долгая разработка. Язык управляется обновленным ядром Zend Engine 2.0 с принципиально новой объектной моделью и прочими дополнениями.
PHP 7.0. Вышла в 2015 году. Увеличилась производительность: появилась возможность обрабатывать больший объем трафика теми же ресурсами веб-сервера. В новой версии стало доступно указывать тип возвращаемых из функции данных, добавился контроль передаваемых типов для данных и новые операторы.
PHP 8.0. Это последний вариант, который был выпущен в конце 2020 года. Язык получил поддержку union-типов (структур данных или значений, которые могут иметь несколько различных представлений), аннотации (атрибуты), а также компиляцию байт-кода в машинный код во время работы программы (JIT-компиляцию). Microsoft решили не поддерживать версию 8.0 для Windows, поэтому теперь эту работу проводят участники из сообщества, заинтересованные в работе PHP на операционной системе.
PHP, как и любой язык программирования, имеет свои преимущества и недостатки:
Плюсы
Минусы
Для устранения недостатков PHP многие разработчики используют фреймворки, такие как Laravel, Symfony или Yii, которые предоставляют инструменты и структуру для более структурированной и безопасной разработки.