PHP ( — PHP: гіпертекстовий препроцесор), попередня назва: Personal Home Page Tools — скриптова мова програмування, була створена для генерації HTML-сторінок на стороні вебсервера. PHP є однією з найпоширеніших мов, що використовуються у сфері веброзробок (разом із Java, .NET, JavaScript, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів. PHP — проєкт відкритого програмного забезпеченняЩо таке PHP?.

PHP інтерпретується вебсервером у HTML-код, який передається на сторону клієнта. На відміну від скриптової мови JavaScript, користувач не бачить PHP-коду, тому що браузер отримує готовий html-код. Це є перевагою з точки зору безпеки, але погіршує інтерактивність сторінок. Але ніхто не забороняє використовувати PHP для генерування JavaScript-кодів, які виконуються вже на стороні клієнта.

Особливості PHP — мова, у код якої можна вбудовувати безпосередньо html-код сторінок, які, у свою чергу, коректно оброблюватимуться PHP-інтерпретатором. Обробник PHP просто починає виконувати код після відкриваючого тегу () і продовжує виконання до того моменту, поки не зустріне закриваючий тег.

Велика різноманітність функцій PHP дає можливість уникати написання багаторядкових функцій, призначених для користувача, як це відбувається в C або Pascal.

Наявність інтерфейсів до багатьох баз даних у PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, SQLite, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase. завдяки стандарту відкритого інтерфейсу зв'язку з базами даних (, ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.

Нетрадиційність Мова PHP здаватиметься знайомою програмістам, що працюють у різних галузях. Багато конструкцій мови запозичені з С, Perl. Код PHP дуже схожий на той, який зустрічається в типових програмах мовами С або Pascal. Це помітно знижує початкові зусилля при вивченні PHP. PHP — мова, що поєднує переваги Perl та С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є найпопулярнішою мовою для створення вебзастосунків (скриптів).

Наявність сирцевого коду та безкоштовність Стратегія Open Source, і розповсюдження початкових текстів програм у масах, безсумнівно справили сприятливий вплив на багато проєктів, в першу чергу — Linux хоч і успіх проєкту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення PHP, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником у розвитку проєкту PHP. Ухвалення стратегії Open Source і безкоштовне розповсюдження початкових текстів PHP надало неоціненну послугу користувачам. Окрім цього, користувачі PHP в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді, навіть на найскладніші питання.

Ефективність Ефективність є дуже важливим чинником у програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте хоч би що робили розробники PHP, виконавчі файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP достатня для створення цілком серйозних вебзастосунків.

Історія

Перші версії Історія PHP починається з 1995 року, коли Расмус Лердорф () створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на вебсайті. Потім, коли цим застосунком вже користувалися кілька осіб, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Інструменти для особистої домашньої сторінки версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.

Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI (, ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних у стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпілювалася до вебсервера Apache. До 1997 року PHP використовувався вже на 50 000 доменах (не більше 1 % всіх вебсерверів).

Того ж 1997 року до проєкту PHP підключилися Зев Сураскі () і Енді Ґутманс (). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проєктів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зев і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.

Закінчивши роботу, Зев і Енді домовились із Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ 1998 року під назвою PHP 3.

При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 року кількість користувачів PHP перевищила 100 тисяч, а PHP був уже встановлений на понад 10 % серверах Інтернету. Водночас значному поширенню даної мови сприяли публікації в електронній пресі та видання посібників із PHP.

Відразу ж після виходу PHP 3, Енді Гутманс і Зев Сураскі почали переробку ядра PHP. Насамперед належало розв'язати проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований 1999 року. Основними реалізованими ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.

PHP 3 та PHP 4 Зеєв Сураскі та Анді Гутманс переробили аналізатор в 1997 році і сформували базу PHP 3, змінивши назву мови на рекурсивний акронім PHP: Hypertext Preprocessor.  Після цього почалося публічне тестування PHP 3, а офіційний запуск відбувся в червні 1998 року. Після цього Сураскі та Гутманс розпочали нове перекодування ядра PHP, видавши Zend Engine у 1999 році. Вони також заснували Zend Technologies в Рамат-Гані, Ізраїль.

22 травня 2000 р. Був випущений PHP 4 з підтримкою Zend Engine 1.0.  Станом на серпень 2008 року ця філія досягла версії 4.4.9. PHP 4 більше не розробляється, оновлення безпеки також більше не були випущені.

PHP 5 14 липня 2004 р. Був випущений PHP 5 з новим двигуном Zend Engine II. PHP 5 включав нові функції, як-от покращена підтримка об'єктно-орієнтованого програмування, розширення PHP Data Objects (PDO) (який містить легкий і послідовний інтерфейс для доступу до баз даних) та численні поліпшення продуктивності. У 2008 році PHP 5 став єдиною стабільною версією, що розроблялася. Пізній статичний зв'язок відсутній у PHP і був доданий у версії 5.3.

Багато високопрофесійних проєктів із відкритим кодом з 5 лютого 2008 року перестали підтримувати PHP 4 в новому коді, оскільки це ініціатива GoPHP5, що надається консорціумом розробників PHP, що сприяє переходу від PHP 4 до PHP 5.

З часом інтерпретатори PHP стали доступними для більшості існуючих 32-розрядних та 64-розрядних операційних систем, або будували їх із вихідного коду PHP, або використовували попередньо побудовані двонарні файли. Для версій PHP версії 5.3 та 5.4 єдиними доступними двосторонніми дистрибутивами Microsoft Windows були 32-розрядні версії x86, що вимагають 32-розрядний режим сумісності Windows при використанні інформаційних служб Інтернету (IIS) на 64-розрядній платформі Windows. PHP версії 5.5 зробив збірки 64-розрядних x86-64 доступними для Microsoft Windows.

PHP 6 та Unicode PHP отримав змішані відгуки через відсутність власної підтримки Unicode на рівні основної мови. У 2005 році був започаткований проєкт, очолюваний Андрієм Змієвським, для залучення рідної підтримки Unicode на PHP, шляхом вбудовування бібліотеки «Міжнародні компоненти для Unicode» (ICU) та вбудованих текстових рядків як UTF-16. Оскільки це призведе до серйозних змін як до внутрішньої частини мови, так і до коду користувача, планувалося випустити його як версію 6.0 мови разом з іншими основними функціями, які розвиваються.

Проте дефіцит розробників, які зрозуміли необхідні зміни та проблеми продуктивності, що виникають внаслідок перетворення на UTF-16 та з нього, що рідко використовується в вебконтексті, призвело до затримок проєкту. Як результат, випуск PHP 5.3 був створений у 2009 році, при цьому багато не-Unicode-функцій було відновлено з PHP 6, зокрема простору імен. У березні 2010 року проєкт у своїй нинішній формі був офіційно відкинутий, і був підготовлений випуск PHP 5.4, що містить більшість опублікованих функцій, що не входять до Unicode, з PHP 6, як-от риси та переприв'язка до закриття. Початкові сподівання полягали в тому, що для інтеграції з Unicode був би сформований новий план, але з 2014 року ніхто не був прийнятий.

PHP 7 Впродовж 2014 та 2015 років було розроблено нову основну версію PHP, яку було пронумеровано PHP 7. Нумерація цієї версії викликала дебати. Хоча реліз PHP 6 з Unicode ніколи не був випущений, декілька назв статей і книг посилалися на назву PHP 6, що могло викликати плутанину, якби новий реліз повторно використовував цю назву. Після голосування було обрано назву PHP 7.

PHP 7 вийшла 3 грудня 2015 року і містить такі ключові нововведення:

Завдяки суттєвим допрацюванням нова версія дала приріст продуктивності в 2—3 рази на реальних проєктах. Можливість декларування скалярних типів.<?php function sumOfInts(int ...$ints) { return array_sum($ints); } Можливість декларувати тип, того що має повернути метод.<?php

function arraysSum(array ...$arrays): array { return array_map(function(array $array): int { return array_sum($array); }, $arrays); } Анонімні класи<?php

$app = new Application; $app->setLogger(new class implements Logger { public function log(string $msg) { echo $msg;

}); Додані нові операції «$a ?? $b» (аналогічно !is_null($a) ? $a : $b) та «$a <=> $b» (повідомляє чи більший, менший чи рівний параметр $a до $b).

PHP 8

26 листопада 2020 року вийшло нова версія php, PHP 8. Серед ключових нових можливостей мови:

Іменовані аргументи.<?php htmlspecialchars($string, double_encode: false); Замість анотацій PHPDoc тепер ви можете використовувати структуровані метадані з власним синтаксисом PHP. Опис властивостей на рівні конструктора<?php class Point { public function __construct( public float $x = 0.0, public float $y = 0.0, public float $z = 0.0, ) {} } Об'єднання типів<?php

function foo(int|float $a) {] Оператор nullsafe. Якщо якийсь об'єкт / метод / властивість не визначена тоді результат буде null.<?php

$country = $session?->user?->getAddress()?->country; JIT-компіляція

Визнання та поширення PHP 4, що працює на цьому ядрі, вийшов 2000 року. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20 % доменів Інтернету.