PHP 7.3.0alpha4: Downloads, Changelog, News

Release Information

Release
7.3.0alpha4
PHP Version
PHP 7.3
Release Date
Release Type
Bug Fix Release
Release Status
EOL, Use PHP 7.3.33
Branch Status
Unsupported

PHP 7.3 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.3.0alpha4 is not recommended. PHP 7.3.33 is the latest version in the series.

Downloads

Source Code

Git Clone
Use Git to clone the 7.3.0alpha4 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.3.0alpha4
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (./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

Non-Thread Safe Builds
Non-Thread Safe (NTS) builds are single-threaded PHP builds. They can be used on web servers that integrate PHP over FastCGI protocol, such as Nginx, Caddy, and IIS.
Thread-Safe Builds
Thread-Safe (TS) builds are multi-thread PHP builds, often used to integrate PHP as a Server API for multithreaded servers. The most common use case is using PHP as an Apache module.

Docker/Podman Containers

PHP CLI
PHP CLI Containers images only include the PHP CLI, and no FPM or Apache modules. The Alpine builds are lightweight, but may introduce incompatibilities due to their musl builds. Albeit their larger size, the Debian-based (without the "-alpine" suffix) images are more complete, and widely used.

Alpine-based: Lightweight, but may introduce incompatibilities due to their musl builds.
docker pull php:7.3.0alpha4-cli-alpine

Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.3.0alpha4-cli
PHP CLI + Web Server Integration
These container images include PHP CLI, and a web server integration. FPM container images can be integrated with web servers such as Nginx, Caddy, and Apache with Event MPM. The Apache container images include Apache web server, integrating PHP as an Apache module.

Alpine-based: Lightweight, but may introduce incompatibilities due to their musl builds.
docker pull php:7.3.0alpha4-fpm-alpine

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.3.0alpha4-apache

Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:7.3.0alpha4-fpm

Commit List

Anatol Belski

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() and array_key_last() in 9f957fd303
  • Update versions for PHP 7.3.0alpha4 in 069f82bf08

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() by zval_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 of zval_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 legacy zval_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 of zval_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 of zval_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 of zval_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 of zval_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.create_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

Dorin Marcoci

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

Gabriel Caruso

Jakub Zelenka

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

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

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

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

Sara Golemon

seliver

  • Fixed bug #76136 (stream_socket_get_name enclosed IPv6 in brackets) in 95013042bf

sim1984

Stanislav Malyshev

Till Backhaus

timurib

Xinchen Hui

Yousif Masoud

  • fixes typo in daemonization DEBUG message after fork: acknoledge -> acknowledge in 9a21aa77af

Zenju

Subscribe to PHP.Watch newsletter for monthly updates

You will receive an email on last Wednesday of every month and on major PHP releases with new articles related to PHP, upcoming changes, new features and what's changing in the language. No marketing emails, no selling of your contacts, no click-tracking, and one-click instant unsubscribe from any email you receive.

Support PHP.Watch — If you find the articles, version information, Codex, and other PHP.Watch contributions useful, consider supporting through GitHub Sponsors. Your sponsorship helps dedicate more time to creating valuable content and improving the PHP community. Together, we can keep the momentum going — thank you for your support!

Thanks to the highest tier sponsor: @TomasVotruba for your generous support to keep PHP.Watch moving 💜