PHP
PHP | |
---|---|
Тип | язык программирования |
Автор | Лердорф Расмус |
Разработчики | Лердорф Расмус, Энди Гутманс, Зеев Сураски, PHP Group |
Операционная система | Unix-подобная операционная система, Microsoft Windows |
Первый выпуск | 8 июня 1995 |
Последняя версия | 8.2.3 (14 февраля 2023) |
Состояние | активное |
Лицензия | PHP License |
Сайт | https://www.php.net |
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста») — это язык сценариев с синтаксисом, заимствованным из C и Perl, который в основном используется для создания динамических веб-страниц или веб-приложений. PHP распространяется как свободное программное обеспечение под лицензией PHP. PHP поддерживает базы данных и подключается к интернет-протоколам, а также предоставляет множество функциональных библиотек.
История
С момента публикации в 1995 году разработчики внесли значительные изменения в язык php. Ядро языка было полностью перестроено в версии PHP 3.
PHP 1 (Personal Home Page Tools)
PHP был разработан Расмусом Лердорфом в 1995 году.[1] В то время этот термин все еще обозначал инструменты для персональной домашней страницы и первоначально задумывался как замена набора сценариев Perl, написанных Лердорфом для регистрации обращений к его онлайн-резюме.
PHP / FI (PHP 2)
Лердорф создал более обширную версию на языке программирования C, на котором PHP разрабатывается и по сей день.[2] Наконец-то выпущенный PHP / FI (FI означает интерпретатор форм) был очень похож на Perl, хотя и более ограничен.
PHP 3
Энди Гутманс и Зеев Сураски в 1997 году переписали PHP 3. По их мнению, выпущенный к настоящему времени код PHP / F2 был неадекватным для электронной коммерции. Теперь Лердорф сотрудничал с Гутом и Сураски, и поэтому разработку PHP / FI он прекратил. По мнению разработчиков, версия PHP 3 значительно продвинула в распространении языка веб-скриптов PHP.
PHP 4
Компания Zend Technologies Ltd., основанная Гутмансом и Сураски, впоследствии разработала Zend Engine 1[3], который лежит в основе реализации стандарта PHP 4. PHP 4 улучшил скорость выполнения сложных приложений и безопасность при использовании глобальных переменных[4]. Также были представлены поддержка многих других веб-серверов, управление сеансами и буферизация вывода, а также ряд новых языковых конструкций.
В конце 1990-х годов Всемирная паутина значительно расширилась, и возникла острая необходимость в языке сценариев для создания динамических веб-страниц. PHP стал более популярным для веб-разработки, чем предыдущий стандарт Perl. Его специализация делала его более простым в освоении. С 2008 года разработка и поддержка PHP 4 была прекращена.[5]
PHP 5
Летом 2004 года был выпущен еще один этап разработки — версия 5.0[6]. Ключевым отличием от предшественника является Zend Engine II, который, прежде всего, использует улучшенную объектную модель, что позволяет объектно-ориентированным приложениям работать более эффективно и допускать такие языковые конструкции, как перегрузка. К этому добавляется интеграция с базой данных SQLite, а также расширения при обработке XML и DOM. В 2011 году разработчики решили объединить то, что, по их словам, было хаотичным процессом выпуска. В соответствии с этим, новые версии должны выпускаться регулярно, а поддержка старых версий должна гарантироваться в фиксированный период времени.
Последней веткой стала версия PHP 5.6, в которой увеличена скорость работа на 15-20 %[7], введено пространство имен, лямбда-функции и замыкания, добавление расширений: intl, phar, fileinfo и sqlite, прекращение поддержки версий операционных систем Windows 95, 98, NT 4.0, 2000.
PHP 6
Разработки этой версии, которые велись с 2006 года были прекращены в 2010 году из-за сложностей с поддержкой Юникода.[8]
PHP 7
PHP 7 имеет на 30 процентов меньшее время выполнения, чем PHP 5, из-за новой реализации хеш-таблиц[9]. Кроме того, благодаря различным изменениям в ядре PHP новая версия занимает меньше места на диске, чем PHP 5. Такие компоненты, как парсер, лексер и генератор байт-кода, также претерпели некоторые изменения. Версия 7.0 была выпущена 3 декабря 2015 года[10]. В декабре 2016 года был выпущен PHP 7.1. В декабре 2017 вышла версия 7.2, а в ноябре 2019 — версия 7.4.
PHP 8
PHP 8 была выпущена в конце ноября 2020 года[11]. Версия поддерживает современную компиляцию, которая повышает почти на 50 % производительность в микро-тестах.[12] Например, PHP 8 предоставляет расширение WeakRefs, которая обеспечивает ресурсосберегающую обработку объектов. Помимо этого, поддерживаются произвольные типы объединения.
Популярность языка
PHP был разработан как веб-ориентированный язык сценариев для шаблонов веб-документов.[13] Широкое распространение веб-сервера Apache и модуля расширения PHP обеспечивает недорогое и быстрое развертывание сред веб-приложений, в которых программное обеспечение может быть доставлено в виде простых исходных текстовых файлов быстро и просто готовым к запуску по стандартным протоколам, таким как SFTP.
Помимо того, постепенное расширение статических веб-документов (HTML) с помощью небольших вспомогательных функций и управляемых логических блоков позволяет легко приступить к веб-программированию на стороне сервера.
Технология работы
PHP — это система, которая обрабатывает PHP-код на стороне сервера. В этом случае исходный текст передается не напрямую в веб-браузер, а в интерпретатор на веб-сервере. После этого интерпретатор PHP передается в браузер. Обычно это HTML-документ, но с помощью PHP можно создавать файлы других типов, например изображения или PDF.
Чтобы иметь возможность запускать PHP-файл в контексте веб-приложения, требуется система, способная обрабатывать инструкции, содержащиеся в файле. Для работы нужен сервер с настроенной службой Apache или IIS. Комбинация Linux / Windows / macOS в качестве операционной системы, Apache в качестве веб-сервера, MySQL в качестве системы баз данных и PHP называется LAMP (для Linux), WAMP (для Windows) или MAMP (для Mac OS X).
Поскольку PHP обычно работает в среде веб-сервера, он также зависит от HTTP без сохранения состояния. Любая страница php загружается веб-сервером через интерпретатор. Более того, интерпретатор повторно обрабатывает исходный текст при каждом вызове. Это уменьшает время отклика сервера и увеличивает нагрузку на него. Чтобы бороться с этим, доступны различные кеши байт-кода, которые кэшируют версию программы, подготовленную к запуску, тем самым ускоряя доступ к этому файлу при следующем вызове, то есть после кэширования интерпретатор не запускается, а выдает уже сформированный результат.
Hello World !
Один из вариантов версии программы Hello World на PHP:
<?php
echo 'Привет, мир!';
?>
Синтаксис
Встраивание в HTML
PHP легко встраивается в HTML разметку:
<html>
<head>
<title>Встривание PHP В HTML</title>
</head>
<body>
<?php echo '<p>Привет, мир!</p>'; ?>
</body>
</html>
IF ELSE
Пример if else. Здесь проверятся веб-браузер пользователя и выводится соотвествующий текст.
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<p>К сожалению, вы используете Internet Explorer</p>
<?php
} else {
?>
<p>Вы, к счастью, не используете Internet Explorer</p>
<?php
}
?>
Включение файлов
Внешние файлы могут быть встроены в PHP-скрипт. Для этого есть четыре разных инструкции.
<?php
require 'pfad/datei.php'; // если файл не удается смонтировать, возникает ошибка
include 'pfad/datei.php'; // если файл не удается смонтировать, выводится предупреждение
require_once 'pfad/datei.php'; // привязывает файл только в том случае, если он не был смонтирован ранее
include_once 'pfad/datei.php'; // встраивает файл только в том случае, если он ранее не был смонтирован
?>
Переменные
Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к региструю
<?php
$name = "Small cat";
?>
Константы
Константы — это идентификаторы (имена) простых значений. Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.
<?php
define("COLOR", "RED");
?>
Типы данных
PHP является языком с динамической типизацией. Это значит, что тип данных переменной выводится во время выполнения, и в отличии от ряда других языков программирования в PHP не надо указывать перед переменной тип данных.
<?php
// Скалярные типы
$var = true; // boolean
$num = 5; // integer
$float = 4.71; // float
$string = 'foo'; // string
// Составные типы
$field= array('foo', 'bar'); // array
$object = new stdClass(); // object
$function = function () { // callable
echo 'Привет, мир!';
};
// Специальные типы данных
$resource = fopen("foo", "w"); // resource
$variable = NULL; // NULL
?>
Популярные PHP — приложения
Форумы: phpBB, IPB, vBulletin.
Веб-фреймворки: Laravel, Symfony, Zend Framework, CakePHP
Графические интерфейсы для управления базами данных: phpMyAdmin, Adminer
Системы управления контентом: MODx, Joomla, Bitrix, Wordpress, Evolution CMS, Drupal, PHP Nuke.
Система для интернет-магазинов: osCommerce, PrestaShop, OpenCart, Webasyst, Magento.
Примечания
- ↑ Гренландский программист (cоздатель PHP): «Ненавижу программирование. Но я люблю решать проблемы» . Хабр.
- ↑ PHP: История PHP - Manual . www.php.net.
- ↑ Зеев Сураски: Будущее Zend Engine и Zend Framework . itnan.ru.
- ↑ Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 1: оптимизация структур данных . Хабр.
- ↑ PHP4 прекратит существование в 2008 году . CNews.ru.
- ↑ PHP исполнилось 20 лет . www.linux.org.ru.
- ↑ Сравнение производительности версий PHP . www.pvsm.ru.
- ↑ Mattias Geniar. PHP 6: The Missing Version Number (англ.). ma.ttias.be (18 января 2015).
- ↑ Новая реализация Hashtable и улучшения производительности в PHP 7 - Русские Блоги . russianblogs.com.
- ↑ Что нового в PHP 7 . WordPress как на ладони.
- ↑ Василий Сычев. Разработчики выпустили восьмую версию языка программирования PHP . N + 1 — главное издание о науке, технике и технологиях.
- ↑ PHP 7.4 vs. PHP 8.0a . bolknote.ru.
- ↑ Чем так хорош язык веб-разработки PHP . webformyself.com.
Данная статья имеет статус «проверенной». Это говорит о том, что статья была проверена экспертом |