PHP 8.0 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 8.0.2 is not recommended. PHP 8.0.30 is the latest version in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.2
./buildconf
), configuring the build ./configure
, and running make
.Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
Windows binaries
Docker/Podman Containers
docker pull php:8.0.2-cli-alpine
docker pull php:8.0.2-cli
docker pull php:8.0.2-fpm-alpine
docker pull php:8.0.2-apache
docker pull php:8.0.2-fpm
ChangeLog
Core
- Fixed bug #80523 (bogus parse error on >4GB source code).
- Fixed bug #80384 (filter buffers entire read until file closed).
- Fixed bug #80596 (Invalid union type TypeError in anonymous classes).
- Fixed bug #80617 (GCC throws warning about type narrowing in
ZEND_TYPE_INIT_CODE
).
BCMath
- Fixed bug #80545 (bcadd('a', 'a') doesn't throw an exception).
Curl
- Fixed bug #80595 (Resetting POSTFIELDS to empty array breaks request).
Date
- Fixed bug #80376 (last day of the month causes runway cpu usage).
DOM
- Fixed bug #80537 (Wrong parameter type in
DOMElement::removeAttributeNode
stub).
Filter
- Fixed bug #80584 (0x and 0X are considered valid hex numbers by
filter_var()
).
GMP
- Fixed bug #80560 (Strings containing only a base prefix return 0 object).
Intl
- Fixed bug #80644 (Missing resource causes subsequent
get()
calls to fail).
MySQLi
- Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to interpret bit columns).
- Fixed bug #64638 (Fetching resultsets from stored procedure with cursor fails).
- Fixed bug #72862 (segfault using prepared statements on stored procedures that use a cursor).
- Fixed bug #77935 (Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor).
ODBC
- Fixed bug #80592 (all floats are the same in ODBC parameters).
Opcache
- Fixed bug #80422 (php_opcache.dll crashes when using Apache 2.4 with JIT).
PDO_Firebird
- Fixed bug #80521 (Parameters with underscores no longer recognized).
Phar
- Fixed bug #76929 (zip-based phar does not respect phar.require_hash).
- Fixed bug #77565 (Incorrect locator detection in ZIP-based phars).
- Fixed bug #69279 (Compressed ZIP Phar extractTo() creates garbage files).
Phpdbg
- Reverted fix for bug #76813 (Access violation near NULL on source operand).
Commit List
Adam Seitz
- Fix #80384: limit read buffer size in 70dfbe0068
Christopher Jones
- Retrofit NEWS in 2877642037
- Bundle PECL OCI8 3.0.1 in 74959b47cd
- Description typo in d6731d69bd
- Fix PDO_OCI test in 34aefa36f4
Christoph M. Becker
- Fix #80521: Parameters with underscores no longer recognized in 1860ef22eb
- Fix
ext/date
stubs in 3c68f43251 - DateTime:: and
DateTimeImmutable::getTimestamp()
may return false in b67c232189 - Revert "DateTime:: and
DateTimeImmutable::getTimestamp()
may return false" in 32c6c29d79 - DateTime*::getOffset() no longer returns false as of PHP 8.0.0 in 269936e680
php_formatted_print()
throws on failure in 45b638afe0- Bump minimum re2c version to 0.13.7 in 420184ad52
- Fix ffi stubs in 13f898b56a
- Fix
ReflectionClass::getConstants()
stub in 82f9e004da - Fix build in b2fba0ef62
- Fix parameter name in cae0bcbab5
- Fix #77423:
parse_url()
will deliver a wrong host to user in 2d3d72412a - ZipArchive methods do not return NULL in e470f9b389
- Fix imap stubs in aab23282fc
- Fix #77423:
parse_url()
will deliver a wrong host to user in b132da7f9d - SQLite3::
query()
cannot return null in abe23bd9a3 - Fix #76929: zip-based phar does not respect phar.require_hash in 9f96b2bdc8
- Fix memory leak in
Phar::webPhar()
on Windows in 5c963731e2 - Prevent double-free of Phar ZIP stream in b7689db7ab
- Fix #77565: Incorrect locator detection in ZIP-based phars in d1b1c04398
- Add missing
SKIPIF
clause forrequire_hash.phpt
in 90081c5391 - Fix #80592: all floats are the same in ODBC parameters in f674a3343c
- Avoid modifying the return value of
readline_completion_function()
in 9450893dc6 - Revert "Fix #76813: Access violation near NULL on source operand" in 25103c37aa
- Revert fix for bug 76813 and re2c version bump in 95a13ca989
socket_create_pair()
can no longer return NULL in 41e9a8ebdc- Fix #80595: Resetting POSTFIELDS to empty array breaks request in 38ad37ad43
- Fix #69279: Compressed ZIP Phar extractTo() creates garbage files in 68f5289e9e
ldap_search()
and friends can return array in f33105dcb6- Alternative fix for bug 77423 in 605d9f55ad
Daniil Gentili
- Fixed bug #80596: Fix anonymous class union typehint errors in f9fbba41b6
David CARLIER
- Mac M1 crc32 detection support in 6e90c75507
- Use arc4random_buf on macOS in 7a049cd6a4
Derick Rethans
- Prepare for 7.4.15 in 078cdd8f76
- Fixed bug #80376 (last day of the month causes runway cpu usage) in b043759cb4
- Fixed bug #80376 (last day of the month causes runway cpu usage) in 288332077f
- Update NEWS and version in a33d0c3aae
Dharman
- Fix/improve mysqli stubs in 44a311dbbe
- Make fetch_* OO same as func in 34ef804b04
Dmitry Stogov
- Eliminate redundand comparison insructions in 23bbff2b05
- Reuse value stored in %r0 instead of immediate operand in 56fde2a381
- Initialize EX(call)->func by single instruction in da0ca53f39
- Add guard if lvalue of assignment may be a reference, but wasn't a reference during recording in 35e0506a2e
- Fixed bug #80422 (php_opcache.dll crashes when using Apache 2.4 with JIT) in 3edf5c969a
Dylan K. Taylor
- gdbinit: use ____print_str to print htable keys in 6b631f073d
- Fix stub for
Phar::setStub()
in 0aad77418d - Keep JIT region executable under ZTS in 872f302b8d
Gabriel Caruso
- Next is 8.0.2 in f1f78ac875
- Prepare for PHP 8.0.2 in 9eea9aae10
- Fix NEWS placeholder for the next version in 9ce200f6cb
- [ci-skip] Fix placeholder for non-RC release in 966ee42d34
- [ci-skip] Remove RC suffix to release non-RC in 08b44a47ca
- [ci-skip] Fix typo in placeholder in b4814d7456
- Update versions for PHP 8.0.2 in a66aeecc2c
George Peter Banyard
- Fix #80560: Strings containing only a base prefix return 0 object in abecaab09f
- Fix GMP comparison object handler in 1b5c62facd
- Fix bug #80584: 0x and 0X are considered valid hex numbers by
filter_var()
in 764b7bf108 - Rename
zip_ent
parameter tozip_entry
for consistency in f40838eaaa
haszi
- Replace
sort()
function calls withksort()
in basic ksort test in 0db6f5267c
Jens de Nies
- Fixed bug #80545 in 94a151a018
Máté Kocsis
- Fix the signature of
FFI::sizeof()
andFFI::alignof()
in ed19cb6518 - Add a few other RETURN_THROWS() in c1d766171b
- Fix the signature of
FFI::typeof()
andFFI::memcmp()
in ab4c5976d7 - Add support for generating methodsynopses from stubs in 9cec093b7f
- Fix return type of DateTimeImmutable::__set_state() in 46a2c6a8d7
- Fix refentry attribute replacing in 446ad04524
- Use RETURN_THROWS() in a few places in b23c865d15
Nikita Popov
- Fix bug #80523 in 118ff03335
- Fixed bug #67983 in 315f3f8dc9
- PDO MySQL: Use mysqlnd column names in 205d209de9
- Detect overlarge step for character
range()
in c56701690a - MySQLnd: Support cursors in store/get result in bc166844e3
- PDO MySQL: Handle boolean parameter binding with libmysql in 51f57e7b81
- Fix bug #80537 in 27e250880b
- Disable non-cron travis jobs in 46d6daea7a
- Throw ValueError instead of TypeError for malformed GMP number in 65f14b0d6c
- Try to fix intermittent failures of
stream_server_reneg_limit.phpt
on macos in af7445b9ac - Fix newly added GMP test in 821eaaf0b4
- Fix infinite recursion in unlinked_instanceof in dd335359e9
- Use ephemeral port in
socket_create_listen_used.phpt
in bc0f78a2da - Add support for union types for internal functions in 973138f39d
- Fixed bug #80617: Type narrowing warning in
ZEND_TYPE_INIT_CODE
in 880bf62224 - Fix parameter name of
PharData::getMetadata()
in 48e2e5324e - Sync date_diff and
DateTime::diff
return type in c31f9f7ee4 - Sync
intlcal_create_instance()
andIntlCalendar::createInstance()
in 39077deea5 - Sync datefmt_get_calendar_object signature in ebf461a025
- Sync gzgets signature with fgets in 7290dc4dcf
SplFileObject::fgets()
cannot return false in f2364f316d- Disable opcache optimizations during some observer tests in dd7d829896
- Observe unused return values in JIT in fbd8e20ed5
- Fixed bug #80644:
ResourceBundle::get()
doesn't reset error state in 05d168013a - Fix observer tests on Windows in f3415758d1
- Fix build in 3424432ec9
Semen Dubina
- Add regression test for bug #76770 in 959d3c9636
sj-i
- Fixed bug #42560 in 5d31ee302d
Stanislav Malyshev
- Fix bug #79405 -
gethostbyname()
silently truncates after a null byte in 8768621149 - Fix test name in bf2bb39eac
- Rm unneeded function in 946e00afd6
- Fix bug #80672 - Null Dereference in SoapClient in f733ee1954