PHP 7.3 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.3.0beta1 is not recommended. PHP 7.3.33 is the latest version in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.3.0beta1
./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:7.3.0beta1-cli-alpine
docker pull php:7.3.0beta1-cli
docker pull php:7.3.0beta1-fpm-alpine
docker pull php:7.3.0beta1-apache
docker pull php:7.3.0beta1-fpm
Commit List
Anatol Belski
- Fixed bug #76564
ext/zip
link issues in e5ef7cbe87 - Fix compilation with Firebird < 3 in 682ca5fccd
- Remove BOM in eb41eba3fe
- Reduce error buffer size in 0630e3bc03
- Fix event log handling in startup phase in 246cb03e26
- Fix coding style in 1870a61a91
- Fix C++11 and up compatibility for
zend_finite
and more in ad790bea2e - Remove conflicting declaration in 3e1e3ab728
- Move to size_t for string length in c90f1964f9
- Add missing flag in 2c43fb49d6
- Skip test on incompatible servers in cce87471b1
- Sync callback signature with libxml2 2.9.8 in a820aab9da
- Fix build with
ZEND_RC_DEBUG
in 14db98825a - Fix condition in 98102648cb
- Switch to ioutil routines to support long path in file cache in 9ac133a0b3
- Make error messages more speaking in 2367e649bc
- Mark conditions unexpected in 81eb8e7507
- Support long path also when reading from file cache in 129c5c1181
- Fix macro in cc7b000d2c
- Fixed RecursiveDirectoryIterator with long path or with edge case length in 99fe18503a
- Avoid early allocation in 1bcc2fcb4e
- Distinguish two error messages in dbabb35ff9
- Improve test in 141072a838
- Trail long path support also for deletion in f6440c3aa6
- Regroup the ifdef'd occurrences in bf8b5b2269
- Fixed bug #76459 windows linkinfo lacks openbasedir check in 289cb0f77c
- Fixed bug #76459 windows linkinfo lacks openbasedir check in f151e048ed
- 7.0.32 next in d011da9d1a
- Update binary SDK version for AppVeyor in 9e54d9d692
- Sync with ab8094c6 in 6059ecee3a
- Fixed bug #75402 Possible Memory Leak using
PDO::CURSOR_SCROLL
option in cc69950b15
Andrea Faulds
- Export stdClass objects using (object) cast (fixes #48016) in e4e9cd8355
cdoco
- Fixed bug #76366 (references in sub-array for filtering breaks the filter) in 47fb17b108
Christoph M. Becker
- Add test for PR #2382 in b37dafcc23
- Fix #76594: Bus Error due to unaligned access in
zend_ini.c
OnUpdateLong in 1c01b1ab48 - Fix #76574: use of undeclared identifiers INT_MAX and LONG_MAX in 271ae3eb2b
- Fix Travis build in 236ae06e0b
- Fix GH-33502: Some nullary functions don't check the number of arguments in 6c630eefcb
- Fix #73817: Incorrect entries in get_html_translation_table in 0f8c1ee76d
- Deprecate explicit use of FILTER_FLAG_SCHEME|HOST_REQUIRED in c0407d95f7
- FILTERFLAG(SCHEME|HOST)_REQUIRED are now deprecated in 79a27ccf3f
- Improve implementation of
array_key_first()
andarray_key_last()
in 9f957fd303 - Fix #52974:
jewish.c
: compile error under Windows with GBK charset in 99fdf5916e - Fix #76643: Segmentation fault when using
output_add_rewrite_var
in 40bd84d3e3 - Fix #76665: SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn't juggle in ed7e3bc70a
- Update UPGRADING wrt. samesite cookie RFC in 974abd8b43
- Fix UPGRADING in bf5cf79456
- Update API version numbers in 144e8d1f83
- Fix
ZEND_EXTENSION_API_NO
in f6ee308143 - Update versions for PHP 7.3.0beta1 in 9160e881a6
David Carlier
- random_bytes improvements for FreeBSD (from 12.x serie) in 9da4e30c75
Dmitry Stogov
- Partial revert of 30156d58 in 57af94c8b9
- Another fix for bug #63217 in 28b03f9605
- Eliminated REFCOUNTED checks on persistent constant operands in SEND_VAL[_EX] and QM_ASSIGN in 004a0568f4
str_replace()
micro-optimization in 14e6c0cb8c- API cleanup. Removed unused functions (kept compatibility macros) in 7eb045d31a
- Avoid useless copying and conversion in 2edf94a637
- SEND_UNPACK should throw exception on Traversable with non-integer keys in d84ef96742
concat_function()
micro optimization in 5f19816f53- se
zval_ptr_dtor_str()
instead of zend_string_release_ex(Z_STR(*), 0) in af341213f7 - Replace legacy
zval_dtor()
byzval_ptr_dtor_nogc()
or even more specialized destructors in 4a475a4976 - Argument unpacking with Traversables and non-integer keys in 3a8f26060c
- Fixed some incorrect
zval_dtor()
usages in 5898583e94 - Removed legacy
zval_dtor()
usage. It doesn't work with zvals with refcount == 0, anyway in 6c0ddcda47 - Fixed incorrrecr
zval_dtor()
usage to replace value of argument passed by reference, that may lead to memory leaks in 265c3ed6cf - Use
zval_ptr_dtor()
instead ofzval_dtor()
in internal functions that destroy new created object (This is safer and produces less code) in b6cc4d2009 - Don't keep dangling pointer to function_name in 0d235517a3
- Replace
zval_dtor()
with specialized destructors in b6fb584505 - Fixed wrong
zval_dtor()
usage in 77c6ca7b62 - Replace
zval_dtor()
with specialized destructors in 273e194df5 - Use
zval_ptr_dtor()
instead of legacyzval_dtor()
, to destroy unused values returned from PHP functions (they may be circular data structures) in 83f6f8563c - Replace
zval_dtor()
with specialized destructors in 91fc0d1a41 - Use
zval_ptr_dtor()
instead ofzval_dtor()
in internal functions that destroy new created object (This is safer and produces less code) in 3780b027dd - Use
zval_ptr_dtor_nogc()
in JSON parser (it can't produce circular data structures) in 918a9f09f8 - Use
zval_ptr_dtor_nogc()
instead ofzval_dtor()
inplaces where circular-references are not possible in 5f83904a5d - Use
zval_ptr_dtor()
to replace bound variables (original values nay be circular structures) in d0a6b1009f - It's safer to use
zval_ptr_dtor()
for iterator keys in 43d5a3665d - Use
zval_ptr_dtor()
imstead ofzval_dtor()
in 169d454593 - Avoid useless checks in
object_init()
in 8361c0a9a7 - Optimize object to array casting in 85b2bc38e1
- Conversion related optimizations in ca40664ad6
- Optimize array to object casting in dcf7592076
- Fixed reference-counting in
zend_parse_arg_str_weak()
in 41db5f73ce - Use
zval_ptr_dtor()
instead ofzval_dtor()
in in-place array/object conversion functions in bd8e76761f - Uze ZVAL_COPY_DEREF() instead of ZVAL_DEREF() and ZVAL_COPY() in 67b4c3379a
- Fixed test in ad2719cf9c
- Eliminated reference-counting and EG(exception) check in 40551e0255
- Eliminated check in a34fedb723
- Avoid reloading in 797e87060c
- Combined few checks into one in e4be6ce0fa
- Avoid useless checks for public functions in dbb9867b3e
- Optimization in 6c61f15408
- Removed deprecated condition in 62b3464871
- Avoid useless copying in 0db8c974a5
- Use ZVAL_COPY_DEREF() in 7da042cbd8
- Avoid copying in 4182b0855f
- Fixed possible assertion/crash when PHP script can't be stored in SHM (e.g. because another process already did this) in 956ac5cbf5
- Changed structure of zend_class_entry.trait_aliases and zend_class_entry.trait_precedences to avoid keeping "intermediate" trait references, that are used only during inheritance in 85ee47eda0
- Improved user iterator implementation to reduce
zend_class_entry
memory consumption and avoid race condition during resolving/caching of user iterator functions of internal classes in ZTS build in 7d4e18b05d - Merge
zend_class_entry.c
reate_object and zend_class_entry.interface_gets_implemented into the same memory lacation. The first used only by classes, the second only by magic interfaces in 5e8977bd62 - Fixed tests in 571dac8c8f
- Flatten strip_tags state machine (GCC overoptimized this function, producing enormpous amount of code) in 5cf6474277
- Fixed error messages in 70d0175a13
- Reduce overhead of case-insensitive constants deprecation for "fast path" in 88dd38ee81
- Inline FETCH_CONST and DEFINED handlers into "hybrid" executor in df60566671
- Improved "Fast Shutdown" in 3b6e1ee4ee
- Perform checks for propertis started with '\0' only for dynamic properties in 412dd75e05
- Allocate array of proper size in e8a04b387e
- Merge "no_utf_check" and "g_notempty" into single "options" in 5d60651165
- Move "/e" modifier check into regex compiler in 29f942b3d0
- Reorder conditions in 1820f2f2f3
- Fixed typo in d77aa8fa6d
- Micro optimizations in b81d712961
- Matching loops optimization in 54ebebd686
- Removed redundand code in 5be44312f8
- Micro-optimization in afc82e243c
- API cleanup in ebd1f5af3e
- Use better destructor (key may be only IS_STRING or IS_LONG) in b121405960
- Avoid code duplication in d4e60a1ffd
- Fixed tests in 7ef8e3f87f
- Better name:
ZEND_PROPERTY_HAS
=>ZEND_PROPERTY_NOT_EMPTY
in d775fe33d1 - Split add/sub_function(s) into fast and slow parts in aed3de1bc5
- Regenerate scanners using re2c version >= 1.0.0 (newer version, at least, produce less code) in a29a800cb0
- Encode parent class name as IS_CONST operand in DECLARE_INHERITED_CLASS and DECLARE_ANON_INHERITED_CLASS opcodes (eliminate FETCH_CLAS in f950128cd6
- typo in 57c4ae393c
- Documented
ZEND_ACC_*
flags (values are kept unchanged, except forZEND_ACC_IMMUTABLE
, that was introduced in 7.3 anyway) in 7a41e4c0d0 - Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value in ab8094c666
- Use better check in f374e93762
- Improved assignment to "next" element of array ($a[] = ...) in a588b825d6
- Removed duplicate code.
zend_fetch_dimension_address_LIST_w()
was a copy ofzend_fetch_dimension_address_W()
, ZEND_FETCH_LIST_W_SPECCV... a copy ofZEND_FETCH_DIM_W_SPEC_CV_
in 3ced766da9 - Added missing define in be805f146c
- Loop optimization in 909f943fe5
- Use better macros in 5674cf888d
- Removed useless IS_UNDEF checks in c42f0ba4f7
- Simplified property name to string conversion in 57527455eb
- Improved method visibility checks in 3ccd985478
Dorin Marcoci
- Boolean data type support, added in Firebird 3. Fixes #74462 in 78f23a6dd4
Dylan K. Taylor
- Fixed regex for checking libzip static lib in 77a841db48
Enno Woortmann
- Add implementation and tests for new methods -
array_key_first
(array $a) Returns the key of the first element or null -array_key_last
(array $a) Returns the key of the last element or null in 50516a6e1f
Ferenc Kovacs
- 5.6.38 will be next in 1ba3314335
Frederik Bosch
- implement same site cookie see https://bugs.php.net/bug.php?id=72230 see https://tools.ietf.org/html/draft-west-first-party-cookies-07 see https://scotthelme.co.uk/csrf-is-dead/ in 08b9310e6d
Gabriel Caruso
- Small tweaks to php scripts in c7d1c14b5c
- Small tweaks to php scripts in 96f83e40c8
- Fix failing test upstream in cf5f26b260
- Test http_response_code function in 59456974f2
- Make more tests run and fix
SKIPIF
sections in 49c193eeb3 - Removed and fixed unused variables in 6ac48425a8
- Use variables that already received
ZEND_NUM_ARGS()
in 8ca1f47a7a - Give a reason why the test was skipped in c93aba042f
- Remove extra semicolons in 9e4d590b19
- Remove unused variables in fb966b9825
- Remove extra semicolons in 562150906a
- Remove superfluous check for PHP 7+ tests in 7ec64a831d
- Reverts some changes from 7ec64a83 in 1359ff8052
- Run tokenizer_data_gen.sh to reorganize tokens in a61756252a
- Remove superfluous
SKIPIF
sections of always available functions in 1461f8ef0d - Remove superfluous
SKIPIF
sections of always available interfaces in aac5cdc7d7 - Remove superfluous
SKIPIF
sections of always available constants in d88bbcea82 - Remove superfluous
SKIPIF
sections of always available functions in 745f6627bd - Give a reason why the test was skipped in 4a1336de7c
- Make more tests run on 64bit plataforms in 9c8b3ae43f
Hongbo
- fix ext_skel continue in a76661a4a2
Jakub Zelenka
- Migrate fpm_get_status test in f86f3edeef
- Update NEWS and UPGRADING for fpm_get_status addition in 2a78006adb
- Refactore FPM logging in 3e5afbf0a8
- Rename none syslog.filter to all and update ini description in c85504386d
- Update NEWS and UPGRADING with info about syslog.filter in e5a9956336
- Return bool from zlog_stream_setmsg{prefix,suffix} in 26cd84d19f
ju1ius
- adds support for named captures to
mb_ereg
&mb_ereg_search
in 212f56b7ca - adds support for named subpatterns to
mb_ereg_replace
in 8f1782678e
Kalle Sommer Nielsen
- Fixed bug #76501 (Funny message with fatal error) in c49f0fd9ac
- Added test case for bug #76539 for master only as the behavior has been restored in 6337af09dc
- Added the 'add_slashes' sanitization filter (FILTER_SANITIZE_ADD_SLASHES) as an alias to 'magic_quotes' (FILTER_SANITIZE_MAGIC_QUOTES) so we can move past our "magical" legacy in a8dce31957
- Added test to accompany the FILTER_SANITIZE_ADD_SLASHES filter in 529baa9a3d
- The session_array global is not used at all, so comment it out for now in 094c2aaf83
- Remove these two old and outdated files we never use: in 2aff1cb226
- Remove some dead code in 08f10ef47a
- Fix HKEY registry path (not that it should matter, dead code, Anatol?) in b1864b0178
- Removed the generated-tests library, this is a left Zöe's phpruntests repository it seems and never fully implemented. The only times this part of the code has been touched throughout the years has been minor PRs and entire php-src grep commits in ba138a3746
- Fixed ZTS build in ba8f0615e1
Nikita Popov
- Do not continue
extract()
ing after an exception has been thrown in e080fb6d92 - Fix string.strip_tags filter in 791f07e4f0
- Fix inverted
stristr()
argument order in mysqli test in 606de9e4a9 - Add UPGRADING for
mb_ereg
changes in 41a6625c09 - Warn if continue is used on switch in 04e3523b7d
- Remove use of case-insensitive constants in tests in a632ecd224
- Deprecate case-insensitive constants in 3588d8af12
- Fix incorrect length calculation in 6e2c54d3e7
- Fix off-by-one allocation in ee561ff2a2
- Deprecate undocumented mbereg_* aliases in e6016ab20d
- Deprecate non-string needles in string search functions in f4a9da389b
- Deprecate defining a free-standing
assert()
function in 5c4047b339 - Deprecate
fgetss()
andgzgetss()
in d9acfa45b8 - Deprecate string.strip_tags filter in 4a5b2101e5
- Deprecate pdo_odbc.db2_instance_name in fb0e8c65b9
- Add UPGRADING notes for deprecations in 4a528d46f5
Ondřej Surý
- Use __cpuid_count() from
cpuid.h
instead of custom assembly in 1a078117b5
Pedro Magalhães
- Support for samesite cookies with array syntax in 2b58ab23c6
Peter Kokot
- Remove sqlite and xmlrpc extension versions from phpinfo output in 29000091b2
- Add missing autoconf m4 quotes in b7368fe0d0
- Fix bug #76392 in 67352cb2c0
- Replace AC_CONFIG_HEADER with AC_CONFIG_HEADERS in 491f1477be
- Bump Autoconf version in configure.ac to 2.64 in 956446bdfa
- Add missing INI directives to curl phpinfo in b585f043cb
- Move GMP bug 74670 test file to tests dir in fef2029614
- Remove unused Git attributes ident in 8d3f8ca12a
- Remove obsolete macro AC_DECL_YYTEXT in df6bd506d4
- Fix typos in code comments in a5e80b22e1
- Replace obsolete AC_TRY_CPP with AC_PREPROC_IFELSE in 8d18d631b6
- Remove unused Git ident attributes from zip extension in 0eabd5231b
- Fix typos in code in cf8ef08e20
- Upgrade AX_CHECK_COMPILE_FLAG macro to serial 6 in b60d8ab2e2
- Trim trailing whitespaces in build files in cf3b852109
- Fix typo in config.m4 in 0a01eae039
- Replace obsolete AC_AIX with AC_USE_SYSTEM_EXTENSIONS in b12cece8d5
- Remove unused libmbfl build system related files in 255e29f3bc
- Remove unused
PHP_PROG_LEX
macro in 03b717d4cc - Replace obsolete AC_STRUCT_ST_BLKSIZE and AC_STRUCT_ST_RDEV in d2184efb7b
- Trim trailing whitespaces in build files in ab702e4fde
- Upgrade AX_FUNC_WHICH_GETHOSTBYNAME_R to serial 8 in 7394879adf
- Upgrade deprecated AC_OUTPUT macro calls in daaf706df0
- Remove obsolete AC_TYPE_SIGNAL in 17de277a2f
- Replace obsolete AC_TRY_FOO with AC_FOO_IFELSE in 4371945b8b
- Fix AC_RUN_IFELSE calls when cross-compiling in f2e4de8b56
- Fix minor Autoconf coding style in b719aa41f4
- Remove TSRM_CHECK_GCC_ARG and LIBZEND_CPLUSPLUS_CHECKS in 7c1e0930c4
Philip Prindeville
- Add syslog.filter INI for filtering syslog messages in 2010c02e5c
Remi Collet
- bump to 7.2.9-dev in 8bf21adb8c
- Fixed bug #62596 add getallheaders (apache_request_headers) missing function in FPM add sapi_add_request_header in public API (was add_request_header) fix arginfo for fastcgi_finish_request fucntion in 0ea4013f10
- NEW and UPGRADING in 587ab00698
- NEWS in e069b0beba
- add info about zend_class_entry.iterator_funcs in 0c3561892b
Sara Golemon
- Bump version in 268e801cb1
- Fix year in 137f22ad36
seliver
- Fixed bug #76136 (
stream_socket_get_name
enclosed IPv6 in brackets) in 95013042bf
sim1984
- Fix bug #76488 Memory leak when fetching a BLOB field in 3847a6fcb6
Stanislav Malyshev
- Fix bug #76423 - Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of
exif.c
in 1baeae4270 - Fix bug #76557: heap-buffer-overflow (READ of size 48) while reading exif data in 3462efa386
- Add NEWS in b73a108543
- Fix test in ebd5f56442
Till Backhaus
- Implement fpm_get_status in 140def4ac7
timurib
- Fix bug #76524 - ZipArchive memory leak in 08f08858f3
Xinchen Hui
- Fixed build in 36f05a80d7
- Fixed test skip in a6467af8a5
- Rename _zval_dtor_func to _ref_dtor_func in a362ae6b12
- Revert "Rename _zval_dtor_func to _ref_dtor_func" in e3355ac5ec
- Rename zval_dtor_func and ref_dotr_func in f9297387f4
- rename ref_dtor_func to rc_dtor_func in 9d1e9b73c5
- Forgotten one replacement in 4c67f7e012
- Fixed pefree_size (efree_size will be expaned to do {} while () form) in 2139c2c2de
- Fixed bug #68553 (
array_column
: null values in $index_key become incrementing keys in result) in 38d97557da - Update NEWs in 033dac7a6f
- Update NEWs in d31d4d1392
- Micro-optmization in 4aada3993c
- Give a meaningful name in 1638a6e118
- Fixed bug #76667 (Segfault with divide-assign op and get + set) in a7746d10a5
Yousif Masoud
- fixes typo in daemonization DEBUG message after fork: acknoledge -> acknowledge in 9a21aa77af
Zenju
- Fix out-of bounds access in 69a49af0d3