Przeglądasz zaktualizowaną wersję artykułu.
środa,
Główne wersje języka PHP
Język PHP ma już wiele lat i doczekał się różnych, niekoniecznie całkowicie kompatybilnych ze sobą wersji. W poniższym zestawieniu dołączono odnośniki do stron dotyczących migracji na daną wersję, można na nich odszukać bardziej szczegółowe informacje dotyczące danego wydania. PHP 8 ma zostać wydany jeszcze w tym roku, datę w zestawieniu należy traktować orientacyjnie.
Wersja | Data wydania | Dodatkowe informacje |
---|---|---|
1.0 | 8 czerwca 1995 | Rasmus Lerdorf udostępnił publicznie kod źródłowy „PHP Tools 1.0”, zbioru usprawnień swojej strony internetowej. |
2.0 | 1 listopada 1997 | Wydanie pod nazwą PHP/FI 2.0, pierwsza wersją, którą można nazwać samodzielnym językiem, niektóre funkcje przetrwały do dnia dzisiejszego. |
3.0 | 6 czerwca 1998 | Do projektu dołączyli Zeev Suraski i Andi Gutmans przepisują, parser języka został przepisany od nowa. |
4.0 | 22 maja 2000 | Dodano silnik nazwany jako Zend Engine 1.0. |
4.1 | 10 grudnia 2001 | Wprowadzono tablice superglobalne ($_GET, $_POST, $_SESSION, itd.) |
4.2 | 22 kwietnia 2002 | Domyślnie wyłączono register_globals. |
4.3 | 27 grudnia 2002 | Wprowadzono interfejs wiersza poleceń (CLI). |
4.4 | 11 lipca 2005 | Naprawiono błędy, jednak nie zachowano zgodności z rozszerzeniami skompilowanymi dla PHP w wersji 4.3.x. |
5.0 | 13 lipca 2004 | Wprowadzono Zend Engine II z nowym modelem obiektowym (migracja do PHP 5.0). |
5.1 | 24 listopada 2005 | Ulepszenia wydajności dzięki wprowadzeniu zmiennych kompilatora w przeprojektowanym silniku PHP. Dodano PHP Data Objects (PDO) jako spójny interfejs dostępu do baz danych (migracja do PHP 5.1). |
5.2 | 2 listopada 2006 | Domyślnie włączone rozszerzenie filer. Natywna obsługa formatu JSON (migracja do PHP 5.2). |
5.3 | 30 czerwca 2009 | Obsługa przestrzeni nazw, późne wiązania statyczne, etykieta skoku (ograniczone goto), funkcje anonimowe, domknięcia, archiwa PHP (phar), ulepszona obsługa systemu Window, sqlite3, mysqlnd jako zamiennik libmysql jako podstawowa biblioteka dla rozszerzeń współpracujących z MySQL , fileinfo jako zamiennik dla mime_magic, rozszerzenia internacjonalizacji i wycofanie rozszerzenia ereg (migracja do PHP 5.3). |
5.4 | 1 marca 2012 | Obsługa mechanizmu traits, uproszczona składnia tablic, usunięte elementy: register_globals, safe_mode, allow_call_time_pass_reference. W interpreter wbudowano serwer WWW (migracja do PHP 5.4). |
5.5 | 20 czerwca 2013 | Dodanie rozszerzenia Zend Opcache w standardzie (migracja do PHP 5.5). |
5.6 | 28 sierpnia 2014 | Wprowadzono statyczne wyrażenia skalarne, zmienną liczbę argumentów funkcji, importowanie funkcji i stałych, nowy debugger (migracja do PHP 5.6). |
6.x | --- | Rozwijana koncepcyjnie przez wiele lat, nigdy nie wydana porzucona wersja. |
7.0 | 3 grudnia 2015 | Zend Engine 3 (ulepszenia wydajności i obsługa 64-bitowych liczb całkowitych w systemie Windows), możliwość deklarowania funkcji z wymogiem zwracania konkretnego typu danych (migracja do PHP 7.0). |
7.1 | 1 grudnia 2016 | Wprowadzono alternatywną składnię dla wyrażenia list(), zwracany typ void, modyfikatory widoczności stałych w klasach, nowy pseudo typ iterable (migracja do PHP 7.1). |
7.2 | 30 listopada 2017 | Zwiększenie wydajności, usunieto rozszerzenie mcrypt, rozszerzono działanie typów parametrów, deklaracje typu wywołanego obiektu, usunięto m.in each(), assert(), create_function(), __autoload (migracja do PHP 7.2). |
7.3 | 6 grudnia 2018 | Wprowadzono funkcje array_key_last() oraz array_key_first(), elastyczną składnię HEREDOC / NOWDOC, wsparcie referencji w list(), timer hrtime(), nowy typ błędu CompileError, PCRE2 (migracja do PHP 7.3). |
7.4 | 28 listopada 2019 | Wprowadzono wstępne ładowanie, funkcje strzałkowe, operator spread (migracja do PHP 7.4). |
8.0 | 26 listopada 2020 | Niektóre nowości: typy unii, kompilacja Just In Time (JIT), operator nullsafe, nazwane argumenty, wyrażenie dopasowania, interfejs Stringable, funkcja str_contains(), stabilne sortowanie. |
8.1 | 25 listopada 2021 | Wprowadzono m.in. typ wyliczeniowy, właściwości tylko do odczytu , typ bezzwrotny, bloki kodu Fibers. |