Accepted (In Progress)

RFC Categories

    Minimum supported versions for PHP 8.6

    Author
    Eric Norris
    This RFC proposes a slate of minimum supported software versions for PHP 8.6.

    Implement autoconf 2.71 requirement as outlined in the RFC?

    Yes
    No
    Abstain
    Yes
    27 Votes (79%)
    No
    2 Votes (6%)
    Abstain
    5 Votes (15%)

    Implement COM_RESET_CONNECTION requirement as outlined in the RFC?

    Yes
    No
    Abstain
    Yes
    26 Votes (84%)
    No
    0 Votes (0%)
    Abstain
    5 Votes (16%)

    Partial Function Application: Handling of Optional Parameters

    Author
    Author
    Author
    Target
    8.6
    The accepted Partial Function Application RFC proposed inheriting the optionality of ?-placeholdered parameters. This results in inconsistent user-facing behavi...

    Make all ? placeholders in PFA required parameters?

    Yes
    No
    Abstain
    Yes
    25 Votes (96%)
    No
    0 Votes (0%)
    Abstain
    1 Votes (4%)

    Secure Session Configuration Defaults

    Author
    Jorg Sowa
    Target
    8.6
    Three ini settings in PHP's session extension have security implications but ship with defaults that leave applications unnecessarily exposed. This RFC proposes...

    Change session.use_strict_mode default to 1?

    Yes
    No
    Abstain
    Yes
    27 Votes (100%)
    No
    0 Votes (0%)
    Abstain
    0 Votes (0%)

    Change session.cookie_httponly default to 1?

    Yes
    No
    Abstain
    Yes
    26 Votes (96%)
    No
    0 Votes (0%)
    Abstain
    1 Votes (4%)

    Change session.cookie_samesite default to Lax?

    Yes
    No
    Abstain
    Yes
    26 Votes (100%)
    No
    0 Votes (0%)
    Abstain
    0 Votes (0%)

    SNMP improvements for encryption protocols, mib reset, and controlling output

    Author
    Steven Wilton
    Target
    8.6
    This RFC proposes to improve the functionality of the SNMP extension in one or more of the following ways:

    Increase the number of SNMPv3 security protocols supported

    Yes
    No
    Abstain
    Yes
    16 Votes (89%)
    No
    0 Votes (0%)
    Abstain
    2 Votes (11%)

    Allow the SNMP MIB to be reset

    Yes
    No
    Abstain
    Yes
    9 Votes (50%)
    No
    0 Votes (0%)
    Abstain
    9 Votes (50%)

    Implement more MIB parsing and value output controls

    Yes
    No
    Abstain
    Yes
    11 Votes (61%)
    No
    0 Votes (0%)
    Abstain
    7 Votes (39%)

    Add pack()/unpack() endianness modifiers for floating-point numbers

    Target
    8.6
    This RFC proposes extending the endianness modifier syntax (< and >) to floating-point format codes in PHP's pack() and unpack() functions.

    Add endianness modifiers to pack()/unpack() for floating-point numbers?

    Yes
    No
    Abstain
    Yes
    11 Votes (69%)
    No
    0 Votes (0%)
    Abstain
    5 Votes (31%)

    Add pack()/unpack() support for endianness modifiers on integers

    Target
    8.6
    This RFC proposes adding support for signed integers with specific endianness to PHP's pack() and unpack() functions using Perl's endianness modifier syntax. Th...

    Add Perl-compatible endianness modifiers to pack()/unpack() for integers?

    Yes
    No
    Abstain
    Yes
    20 Votes (100%)
    No
    0 Votes (0%)
    Abstain
    0 Votes (0%)

    TLS Session Resumption Support for Streams

    Author
    Target
    8.6
    This RFC proposes adding comprehensive TLS session resumption support to PHP's OpenSSL stream implementation. Session resumption is a critical performance optim...

    Add TLS session resumption support to streams as described in this RFC?

    Yes
    No
    Abstain
    Yes
    19 Votes (86%)
    No
    0 Votes (0%)
    Abstain
    3 Votes (14%)

    What should the exception class be named?

    OpenSSLException (consistent with existing OpenSSL classes)
    Openssl\OpensslException (namespaced per Throwable policy recommendation)
    Abstain
    OpenSSLException (consistent with existing OpenSSL classes)
    5 Votes (25%)
    Openssl\OpensslException (namespaced per Throwable policy recommendation)
    15 Votes (75%)
    Abstain
    0 Votes (0%)

    What should the session class be named?

    OpenSSLSession (consistent with existing OpenSSL classes)
    Openssl\Session (namespaced per latest naming conventions)
    Abstain
    OpenSSLSession (consistent with existing OpenSSL classes)
    7 Votes (33%)
    Openssl\Session (namespaced per latest naming conventions)
    13 Votes (62%)
    Abstain
    1 Votes (5%)

    Followup Improvements for ext/uri

    Author
    Target
    8.6
    This RFC proposes a set of follow-up improvements to the URL Parsing API RFC. It extends the Uri\Rfc3986\Uri and Uri\WhatWg\Url classes with additional capabili...

    Add URI building support as outlined in the RFC?

    Yes
    No
    Abstain
    Yes
    21 Votes (91%)
    No
    0 Votes (0%)
    Abstain
    2 Votes (9%)

    Add support for detecting URI type as outlined in the RFC?

    Yes
    No
    Abstain
    Yes
    18 Votes (90%)
    No
    0 Votes (0%)
    Abstain
    2 Votes (10%)

    Add support for host type detection as outlined in the RFC?

    Yes
    No
    Abstain
    Yes
    17 Votes (94%)
    No
    0 Votes (0%)
    Abstain
    1 Votes (6%)

    Add support for percent-encoding as outlined in the RFC?

    Yes
    No
    Abstain
    Yes
    15 Votes (71%)
    No
    0 Votes (0%)
    Abstain
    6 Votes (29%)

    Deprecations for PHP 8.6

    Author
    Author
    Author
    Author
    Author
    Osama Aldemeery
    Author
    Daniel Scherzer
    Author
    Sjoerd Langkemper
    Author
    Seifeddine Gmati
    Author
    Nick Sdot
    Author
    Muhammed Arshid
    The RFC proposes to deprecate the listed functionality in PHP 8.6 and remove it in PHP 9 (except where otherwise noted).

    Deprecate the list() construct?

    Yes
    No
    Abstain
    Yes
    23 Votes (49%)
    No
    23 Votes (49%)
    Abstain
    1 Votes (2%)

    Deprecate returning from a finally block?

    Yes
    No
    Abstain
    Yes
    39 Votes (85%)
    No
    3 Votes (7%)
    Abstain
    4 Votes (9%)

    Deprecate using let as an identifier?

    Yes
    No
    Abstain
    Yes
    24 Votes (55%)
    No
    11 Votes (25%)
    Abstain
    9 Votes (20%)

    Deprecate using namespace as a class constant name?

    Yes
    No
    Abstain
    Yes
    29 Votes (66%)
    No
    8 Votes (18%)
    Abstain
    7 Votes (16%)

    Deprecate using in, out, and inout as identifiers?

    Yes
    No
    Abstain
    Yes
    8 Votes (18%)
    No
    21 Votes (48%)
    Abstain
    15 Votes (34%)

    Deprecate using is as an identifier?

    Yes
    No
    Abstain
    Yes
    29 Votes (64%)
    No
    10 Votes (22%)
    Abstain
    6 Votes (13%)

    Deprecate the possibility to name a function readonly?

    Yes
    No
    Abstain
    Yes
    39 Votes (93%)
    No
    1 Votes (2%)
    Abstain
    2 Votes (5%)

    Deprecate using _ as a constant and compile time alias?

    Yes
    No
    Abstain
    Yes
    34 Votes (79%)
    No
    4 Votes (9%)
    Abstain
    5 Votes (12%)

    Deprecate using _ as a function name and the _() function alias for gettext()?

    Yes
    No
    Abstain
    Yes
    10 Votes (23%)
    No
    22 Votes (51%)
    Abstain
    11 Votes (26%)

    Passing objects for $array parameter of array_walk() and array_walk_recursive()?

    Yes
    No
    Abstain
    Yes
    41 Votes (93%)
    No
    3 Votes (7%)
    Abstain
    0 Votes (0%)

    Passing objects for $options parameter of deflate_init() and inflate_init()?

    Yes
    No
    Abstain
    Yes
    39 Votes (89%)
    No
    4 Votes (9%)
    Abstain
    1 Votes (2%)

    Passing objects as parameters to the zlib.inflate and zlib.deflate stream filters?

    Yes
    No
    Abstain
    Yes
    38 Votes (86%)
    No
    4 Votes (9%)
    Abstain
    2 Votes (5%)

    Passing objects as parameters to the bzip2.decompress and bzip2.compress stream filters?

    Yes
    No
    Abstain
    Yes
    38 Votes (86%)
    No
    4 Votes (9%)
    Abstain
    2 Votes (5%)

    Passing objects for $vars parameter of mb_convert_variables()?

    Yes
    No
    Abstain
    Yes
    39 Votes (91%)
    No
    2 Votes (5%)
    Abstain
    2 Votes (5%)

    Passing objects for $data parameter of http_build_query()?

    Yes
    No
    Abstain
    Yes
    21 Votes (48%)
    No
    10 Votes (23%)
    Abstain
    13 Votes (30%)

    Deprecate is_double()?

    Yes
    No
    Abstain
    Yes
    40 Votes (91%)
    No
    2 Votes (5%)
    Abstain
    2 Votes (5%)

    Deprecate is_integer()?

    Yes
    No
    Abstain
    Yes
    39 Votes (89%)
    No
    2 Votes (5%)
    Abstain
    3 Votes (7%)

    Deprecate is_long()?

    Yes
    No
    Abstain
    Yes
    39 Votes (89%)
    No
    2 Votes (5%)
    Abstain
    3 Votes (7%)

    Deprecate doubleval()?

    Yes
    No
    Abstain
    Yes
    38 Votes (86%)
    No
    2 Votes (5%)
    Abstain
    4 Votes (9%)

    Deprecate define() with $case_insensitive being specified?

    Yes
    No
    Abstain
    Yes
    41 Votes (93%)
    No
    0 Votes (0%)
    Abstain
    3 Votes (7%)

    Deprecate is_subclass_of with string when $allow_string is false?

    Yes
    No
    Abstain
    Yes
    37 Votes (84%)
    No
    0 Votes (0%)
    Abstain
    7 Votes (16%)

    Deprecate is_a with string when $allow_string is false?

    Yes
    No
    Abstain
    Yes
    38 Votes (86%)
    No
    0 Votes (0%)
    Abstain
    6 Votes (14%)

    Deprecate strcoll()?

    Yes
    No
    Abstain
    Yes
    39 Votes (87%)
    No
    2 Votes (4%)
    Abstain
    4 Votes (9%)

    Deprecate SORT_LOCALE_STRING flag for sort() functions?

    Yes
    No
    Abstain
    Yes
    38 Votes (88%)
    No
    2 Votes (5%)
    Abstain
    3 Votes (7%)

    Deprecate Metaphone Function?

    Yes
    No
    Abstain
    Yes
    20 Votes (45%)
    No
    8 Votes (18%)
    Abstain
    16 Votes (36%)

    Deprecate dechunk filter?

    Yes
    No
    Abstain
    Yes
    18 Votes (40%)
    No
    15 Votes (33%)
    Abstain
    12 Votes (27%)

    Deprecate ReflectionProperty::setValue() and ReflectionProperty::setRawValue() with wrong types?

    Yes
    No
    Abstain
    Yes
    43 Votes (93%)
    No
    1 Votes (2%)
    Abstain
    2 Votes (4%)

    Deprecate ReflectionMethod::invoke() and ReflectionMethod::invokeArgs() with objects for static methods?

    Yes
    No
    Abstain
    Yes
    39 Votes (91%)
    No
    3 Votes (7%)
    Abstain
    1 Votes (2%)

    Deprecate ArrayIterator methods that inherit ArrayObject implementation?

    Yes
    No
    Abstain
    Yes
    42 Votes (98%)
    No
    1 Votes (2%)
    Abstain
    0 Votes (0%)

    Deprecate spl_classes()?

    Yes
    No
    Abstain
    Yes
    43 Votes (100%)
    No
    0 Votes (0%)
    Abstain
    0 Votes (0%)

    Deprecate spl_object_hash()?

    Yes
    No
    Abstain
    Yes
    26 Votes (57%)
    No
    9 Votes (20%)
    Abstain
    11 Votes (24%)

    Deprecate SplFileObject CSV methods?

    Yes
    No
    Abstain
    Yes
    25 Votes (56%)
    No
    5 Votes (11%)
    Abstain
    15 Votes (33%)

    Deprecate mysqli::stmt_init, mysqli_stmt_init, and mysqli_stmt::__construct without the second argument?

    Yes
    No
    Abstain
    Yes
    40 Votes (93%)
    No
    0 Votes (0%)
    Abstain
    3 Votes (7%)

    Deprecate mysqli_get_charset()?

    Yes
    No
    Abstain
    Yes
    43 Votes (100%)
    No
    0 Votes (0%)
    Abstain
    0 Votes (0%)

    Deprecate passing a $sessionhandler object to session_set_save_handler() which does not contain the create_sid() and validateId() methods?

    Yes
    No
    Abstain
    Yes
    26 Votes (62%)
    No
    2 Votes (5%)
    Abstain
    14 Votes (33%)

    Data Class

    Author
    Rob Landers
    In modern software development, value semantics is a crucial concept that treats objects based on their content rather than their identity. Unlike traditional r...

    Deprecations for PHP 8.5

    Author
    Author
    cmb
    Author
    Daniel Scherzer
    Author
    Author
    Author
    Jorg Sowa
    Author
    David Carlier
    Author
    Author
    Author
    Target
    8.5
    The RFC proposes to deprecate the listed functionality in PHP 8.5 and remove it in PHP 9 (except where otherwise noted).

    Deprecate semicolon-terminated case statements?

    Yes
    No
    Yes
    22 Votes (69%)
    No
    10 Votes (31%)

    Deprecate non-standard cast names?

    Yes
    No
    Yes
    32 Votes (100%)
    No
    0 Votes (0%)

    Deprecate attributes applying to multiple class properties/constants

    Yes
    No
    Yes
    5 Votes (21%)
    No
    19 Votes (79%)

    Deprecate backticks as an alias for shell_exec?

    Yes
    No
    Yes
    21 Votes (72%)
    No
    8 Votes (28%)

    Deprecate the __sleep() and __wakeup() magic methods?

    Yes
    No
    Yes
    18 Votes (67%)
    No
    9 Votes (33%)

    Deprecate using values null as an array offset and when calling array_key_exists()?

    Yes
    No
    Yes
    25 Votes (89%)
    No
    3 Votes (11%)

    Deprecate __debugInfo() returning null?

    Yes
    No
    Yes
    22 Votes (81%)
    No
    5 Votes (19%)

    Deprecate constant redeclaration?

    Yes
    No
    Yes
    31 Votes (100%)
    No
    0 Votes (0%)

    Deprecate closure binding issues?

    Yes
    No
    Yes
    29 Votes (100%)
    No
    0 Votes (0%)

    Enact follow-up phase of the Path to Saner Increment/Decrement operators RFC?

    Yes
    No
    Yes
    23 Votes (85%)
    No
    4 Votes (15%)

    Deprecate the report_memleaks INI directive?

    Yes
    No
    Yes
    23 Votes (92%)
    No
    2 Votes (8%)

    Deprecate the register_argc_argv INI directive and make in default to Off in PHP 8.5, then hardcode it to Off for all non-CLI-related SAPIs on PHP 9 (while keeping it hardcoded to On for CLI-related ones)?

    Yes
    No
    Yes
    27 Votes (100%)
    No
    0 Votes (0%)

    Remove disable_classes INI setting?

    Yes
    No
    Yes
    26 Votes (100%)
    No
    0 Votes (0%)

    Deprecate Reflection*::setAccessible()?

    Yes
    No
    Yes
    24 Votes (100%)
    No
    0 Votes (0%)

    Deprecate ReflectionParameter::allowsNull()?

    Yes
    No
    Yes
    9 Votes (47%)
    No
    10 Votes (53%)

    Deprecate ReflectionClass::getConstant() for missing constants?

    Yes
    No
    Yes
    25 Votes (100%)
    No
    0 Votes (0%)

    Deprecate ReflectionProperty::getDefaultValue() for properties without default values?

    Yes
    No
    Yes
    22 Votes (92%)
    No
    2 Votes (8%)

    Deprecate ArrayObject and ArrayIterator with objects?

    Yes
    No
    Yes
    26 Votes (100%)
    No
    0 Votes (0%)

    Deprecate SplObjectStorage::contains(), SplObjectStorage::attach(), and SplObjectStorage::detach()?

    Yes
    No
    Yes
    17 Votes (89%)
    No
    2 Votes (11%)

    Deprecate passing spl_autoload_call() to spl_autoload_unregister()?

    Yes
    No
    Yes
    23 Votes (100%)
    No
    0 Votes (0%)

    Deprecate non-canonical type names for settype()?

    Yes
    No
    Yes
    8 Votes (44%)
    No
    10 Votes (56%)

    Deprecate the $exclude_disabled parameter of get_defined_functions()?

    Yes
    No
    Yes
    23 Votes (100%)
    No
    0 Votes (0%)

    Deprecate passing null to readdir(), rewinddir(), and closedir()?

    Yes
    No
    Yes
    24 Votes (89%)
    No
    3 Votes (11%)

    Deprecate passing string which are not one byte long to ord()?

    Yes
    No
    Yes
    20 Votes (83%)
    No
    4 Votes (17%)

    Deprecate passing integers outside the interval [0, 255] to chr()?

    Yes
    No
    Yes
    21 Votes (95%)
    No
    1 Votes (5%)

    Formally deprecate socket_set_timeout?

    Yes
    No
    Yes
    22 Votes (100%)
    No
    0 Votes (0%)

    Deprecate the $http_response_header predefined variable?

    Yes
    No
    Yes
    22 Votes (92%)
    No
    2 Votes (8%)

    Deprecate FILTER_DEFAULT constant?

    Yes
    No
    Yes
    12 Votes (55%)
    No
    10 Votes (45%)

    Emit a deprecation notice when using the default value for the $filter argument of the filter_*() functions?

    Yes
    No
    Yes
    9 Votes (47%)
    No
    10 Votes (53%)

    Deprecate special build system support for drivers without a driver manager?

    Yes
    No
    Yes
    16 Votes (100%)
    No
    0 Votes (0%)

    Deprecate ODBCVER checks?

    Yes
    No
    Yes
    15 Votes (100%)
    No
    0 Votes (0%)

    Deprecate PDO’s uri: scheme?

    Yes
    No
    Yes
    22 Votes (100%)
    No
    0 Votes (0%)

    Deprecate PDO::ERRMODE_WARNING constant?

    Yes
    No
    Yes
    8 Votes (40%)
    No
    12 Votes (60%)

    Deprecate driver specific PDO constants and methods?

    Yes
    No
    Yes
    17 Votes (74%)
    No
    6 Votes (26%)

    Deprecate statement transaction state specific PDO constants?

    Yes
    No
    Yes
    17 Votes (100%)
    No
    0 Votes (0%)

    Deprecate finfo_close()?

    Yes
    No
    Yes
    24 Votes (92%)
    No
    2 Votes (8%)

    Deprecate xml_parser_free()?

    Yes
    No
    Yes
    22 Votes (92%)
    No
    2 Votes (8%)

    Deprecate curl_close()?

    Yes
    No
    Yes
    23 Votes (88%)
    No
    3 Votes (12%)

    Deprecate curl_share_close()?

    Yes
    No
    Yes
    23 Votes (88%)
    No
    3 Votes (12%)

    Deprecate imagedestroy()?

    Yes
    No
    Yes
    23 Votes (92%)
    No
    2 Votes (8%)

    Deprecate key_length parameter of openssl_pkey_derive()?

    Yes
    No
    Yes
    24 Votes (100%)
    No
    0 Votes (0%)

    Deprecate intl.error_level INI setting?

    Yes
    No
    Yes
    22 Votes (100%)
    No
    0 Votes (0%)

    Formally deprecate mysqli_execute?

    Yes
    No
    Yes
    22 Votes (100%)
    No
    0 Votes (0%)

    Deprecate building ext/ldap against Oracle LDAP?

    Yes
    No
    Yes
    19 Votes (100%)
    No
    0 Votes (0%)

    Deprecate the $context parameter for finfo_buffer()?

    Yes
    No
    Yes
    24 Votes (100%)
    No
    0 Votes (0%)

    Deprecate DATE_RFC7231 and DateTimeInterface::RFC7231?

    Yes
    No
    Yes
    22 Votes (100%)
    No
    0 Votes (0%)

    Make the GMP class final

    Author
    Target
    8.4
    The GMP class was introduced as part of the Internal operator overloading and GMP improvements RFC.

    Accept Make the GMP class final RFC?

    Yes
    No
    Yes
    28 Votes (100%)
    No
    0 Votes (0%)

    Change how JIT is disabled by default

    Author
    Daniil Gentili
    Target
    8.4
    This RFC proposes to change how JIT is disabled by default.

    Change how JIT is disabled by default?

    Yes
    No
    Yes
    17 Votes (100%)
    No
    0 Votes (0%)

    Resource to object conversion

    Author
    Resources are a legacy data structure which were superseded by objects a long time ago. They have quite a few disadvantages like the inability of using resource...

    Accept the described approach for converting resources to objects?

    yes
    no
    yes
    30 Votes (100%)
    no
    0 Votes (0%)

    When should the migration of the primary stream resources happen?

    only in a major version (e.g. PHP 9.0)
    in any minor or major version (e.g. PHP 8.4)
    only in a major version (e.g. PHP 9.0)
    23 Votes (77%)
    in any minor or major version (e.g. PHP 8.4)
    7 Votes (23%)

    When should the migration of the auxiliary stream resources happen?

    only in a major version (e.g. PHP 9.0)
    in any minor or major version (e.g. PHP 8.4)
    only in a major version (e.g. PHP 9.0)
    16 Votes (53%)
    in any minor or major version (e.g. PHP 8.4)
    14 Votes (47%)

    When should the migration of the Process resource happen?

    in the next major version (e.g. PHP 9.0)
    in the next minor or major version (e.g. PHP 8.4)
    in the next major version (e.g. PHP 9.0)
    15 Votes (52%)
    in the next minor or major version (e.g. PHP 8.4)
    14 Votes (48%)

    When should the migration of the resources of other extensions happen?

    only in a major version (e.g. PHP 9.0)
    in any minor or major version (e.g. PHP 8.4)
    only in a major version (e.g. PHP 9.0)
    12 Votes (41%)
    in any minor or major version (e.g. PHP 8.4)
    17 Votes (59%)

    A new JIT implementation based on IR Framework

    Author
    Target
    8.4
    The first version of JIT for PHP was released in PHP-8.0 (https://wiki.php.net/rfc/jit). That time we took a quite simple approach. We are generating native cod...

    Merge the new JIT implementation into PHP master?

    Yes
    No
    Yes
    26 Votes (100%)
    No
    0 Votes (0%)

    Remove the old JIT implementation right after merging the new one?

    Yes
    No
    Yes
    25 Votes (100%)
    No
    0 Votes (0%)

    Deprecations for PHP 8.4

    Author
    Author
    Author
    Author
    Author
    Author
    Jorg Sowa
    The RFC proposes to deprecate the listed functionality in PHP 8.4 and remove it in PHP 9 (except where otherwise noted).

    Formally deprecate and remove the aforementioned DOMDocument and DOMEntity properties?

    Yes
    No
    Yes
    36 Votes (100%)
    No
    0 Votes (0%)

    Remove DOMImplementation::getFeature($feature, $version)

    Yes
    No
    Yes
    38 Votes (100%)
    No
    0 Votes (0%)

    Deprecate DOM_PHP_ERR constant?

    Yes
    No
    Yes
    37 Votes (100%)
    No
    0 Votes (0%)

    Deprecate unserialize()’s ‘S’ tag?

    Yes
    No
    Yes
    36 Votes (100%)
    No
    0 Votes (0%)

    Deprecate the INI settings ‘session.sid_length’ and ‘session.sid_bits_per_character’?

    Yes
    No
    Yes
    35 Votes (100%)
    No
    0 Votes (0%)

    Deprecate SplFixedArray::__wakeup()?

    Yes
    No
    Yes
    36 Votes (100%)
    No
    0 Votes (0%)

    Deprecate xml_set_object() and xml_set_*_handler() with string method names

    Yes
    No
    Yes
    33 Votes (100%)
    No
    0 Votes (0%)

    Deprecate passing null and false to dba_key_split()

    Yes
    No
    Yes
    33 Votes (100%)
    No
    0 Votes (0%)

    Deprecate passing incorrect data types for options to ext/hash functions

    Yes
    No
    Yes
    33 Votes (100%)
    No
    0 Votes (0%)

    Deprecate constants SUNFUNCS_RET_STRING, SUNFUNCS_RET_DOUBLE, and SUNFUNCS_RET_TIMESTAMP?

    Yes
    No
    Yes
    32 Votes (100%)
    No
    0 Votes (0%)

    Deprecate passing a non-empty string to the $escape parameter

    Yes
    No
    Yes
    26 Votes (93%)
    No
    2 Votes (7%)

    Remove the E_STRICT Error Level and Deprecate the E_STRICT constant?

    Yes
    No
    Yes
    29 Votes (85%)
    No
    5 Votes (15%)

    Deprecate strtok()?

    Yes
    No
    Yes
    6 Votes (18%)
    No
    27 Votes (82%)

    Deprecate returning non-string values from a user output buffer handler?

    Yes
    No
    Yes
    23 Votes (85%)
    No
    4 Votes (15%)

    Deprecate producing output in a user output handler?

    Yes
    No
    Yes
    25 Votes (93%)
    No
    2 Votes (7%)

    Deprecate using an array as the $data argument for file_put_contents()

    Yes
    No
    Yes
    20 Votes (57%)
    No
    15 Votes (43%)

    Deprecate mysqli_ping() and mysqli::ping()?

    Yes
    No
    Yes
    27 Votes (100%)
    No
    0 Votes (0%)

    Deprecate mysqli_refresh(), mysqli::refresh() and related constants?

    Yes
    No
    Yes
    27 Votes (96%)
    No
    1 Votes (4%)

    Deprecate mysqli_kill() and mysqli::kill()?

    Yes
    No
    Yes
    27 Votes (96%)
    No
    1 Votes (4%)

    Deprecate the second parameter to mysqli_store_result()?

    Yes
    No
    Yes
    31 Votes (100%)
    No
    0 Votes (0%)

    Deprecate lcg_value()?

    Yes
    No
    Yes
    29 Votes (94%)
    No
    2 Votes (6%)

    Deprecate uniqid()?

    Yes
    No
    Yes
    14 Votes (38%)
    No
    23 Votes (62%)

    Deprecate md5(), sha1(), md5_file(), and sha1_file()?

    Yes
    No
    Yes
    18 Votes (46%)
    No
    21 Votes (54%)

    Deprecate passing E_USER_ERROR to trigger_error()

    Yes
    No
    Yes
    27 Votes (93%)
    No
    2 Votes (7%)

    Deprecate using a single underscore as a class name?

    Yes
    No
    Yes
    28 Votes (80%)
    No
    7 Votes (20%)

    Deprecate SOAP_FUNCTIONS_ALL constant and passing it to SoapServer::addFunction()?

    Yes
    No
    Yes
    28 Votes (97%)
    No
    1 Votes (3%)

    Improve unserialize() error handling

    Author
    Target
    8.3
    PHP's current error reporting in unserialize() is very inconsistent, making it hard to reliably handle errors that occur during unserialization.

    Add the \UnserializationFailedException and wrap any Throwables in PHP 8.x?

    Yes
    No
    Yes
    20 Votes (63%)
    No
    12 Votes (38%)

    Increase the severity of emitted E_NOTICE to E_WARNING in PHP 8.x?

    Yes
    No
    Yes
    33 Votes (94%)
    No
    2 Votes (6%)

    Throw \UnserializationFailedException instead of emitting E_NOTICE/E_WARNING in PHP 9.0?

    Yes
    No
    Yes
    23 Votes (74%)
    No
    8 Votes (26%)

    Add true type

    Author
    Target
    8.2
    PHP now has support for null and false as standalone types. However, true which is the natural counter part of false does not even exist as a type.

    Accept Add true type RFC?

    Yes
    No
    Yes
    33 Votes (100%)
    No
    0 Votes (0%)

    Undefined Property Error Promotion

    Author
    Undefined properties are those that have not yet been defined either by the presence of a property declaration, or by adding them to the properties hashmap thro...

    Promote Undefined Property Access to Throw an Error?

    Yes
    No
    Yes
    31 Votes (86%)
    No
    5 Votes (14%)

    Main reason for voting against undefined_property_error_promotion if you did?

    Backwards compatibility breaks
    Would be in favour, but not in 9.0
    Do not like stdClass behaviour
    Something else
    Backwards compatibility breaks
    0 Votes (0%)
    Would be in favour, but not in 9.0
    0 Votes (0%)
    Do not like stdClass behaviour
    6 Votes (86%)
    Something else
    1 Votes (14%)

    Undefined Variable Error Promotion

    Author
    Target
    9.0
    Undefined variables are those that have not yet been initialised with a value prior to being read. Accessing an undefined variable currently emits an E_WARNING ...

    Promote Undefined Variables to Throw an Error

    Yes
    No
    Yes
    33 Votes (80%)
    No
    8 Votes (20%)

    Main reason for voting against if you did?

    Using undefined variables is a legitimate coding style
    Backwards compatibility breaks
    Would be in favour, but not in 9.0
    Something else
    Using undefined variables is a legitimate coding style
    0 Votes (0%)
    Backwards compatibility breaks
    7 Votes (58%)
    Would be in favour, but not in 9.0
    0 Votes (0%)
    Something else
    5 Votes (42%)

    Disjunctive Normal Form Types

    Author
    Target
    8.2
    Disjunctive Normal Form (DNF) is a standard way of organizing boolean expressions. Specifically, it means structuring a boolean expression into an ORed series ...

    Accept Disjunctive Normal Form Types RFC?

    Yes
    No
    Yes
    25 Votes (96%)
    No
    1 Votes (4%)

    Locale-independent case conversion

    Author
    Tim Starling
    Target
    8.2
    Locale-sensitivity is almost always a bug. In the interests of making it easy to write correct code, and to improve performance, strtolower() and related functi...

    Use locale-independent case conversion for string functions as proposed?

    Yes
    No
    Yes
    29 Votes (97%)
    No
    1 Votes (3%)

    Readonly classes

    Author
    Target
    8.2
    PHP 8.1 added support for readonly properties via PHP RFC: Readonly properties 2.0. However, it's still not easy to declare (quasi-)immutable classes, especiall...

    Add readonly classes as proposed?

    Yes
    No
    Yes
    28 Votes (80%)
    No
    7 Votes (20%)

    Typed class constants

    Author
    Benas Seliuginas
    Author
    Target
    8.3
    Despite the huge efforts put into improving the type system of PHP year after year, it is still not possible to declare constant types. This is less of a concer...

    Add support for typed class constants?

    Yes
    No
    Yes
    25 Votes (100%)
    No
    0 Votes (0%)

    Deprecate PHP Short open tags

    Author
    Target
    7.4
    PHP has provided over the years different ways to indicate the beginning of PHP code other than the standard open tags. Most of these opening tags have been re...

    Deprecate PHP short open tags in PHP 7.4?

    Yes
    No
    Yes
    38 Votes (68%)
    No
    18 Votes (32%)

    Remove PHP short open tags in PHP 8.0?

    Yes
    No
    Yes
    42 Votes (74%)
    No
    15 Votes (26%)

    array_key_first(), array_key_last() and array_value_first(), array_value_last()

    Author
    Enno
    Target
    7.3
    As arrays are a powerful data structure it's handy in some cases to get the first or the last key/value of an array without a workaround. To accomplish this tas...

    Add array_key_first() and array_key_last()?

    Yes
    No
    Yes
    18 Votes (56%)
    No
    14 Votes (44%)

    Add array_value_first() and array_value_last()?

    Yes
    No
    Yes
    15 Votes (45%)
    No
    18 Votes (55%)

    Extended String Types For PDO

    Author
    Target
    7.2
    The national character type was introduced in SQL-92 (section 4.2.1). It's an open-ended type. The spec indicates that its meaning is defined by the implementat...

    extended-string-types-for-pdo

    Yes
    No
    Yes
    8 Votes (89%)
    No
    1 Votes (11%)

    Migration Hash Context from Resource to Object

    Author
    Author
    with initial implementation from Rouven Weßling
    Target
    7.2
    Since PHP5, objects have been the preferred structure for wrapping internal data, however some clod created the hash extension to use resources. This RFC seeks...

    Change HashContext to an object

    Yes
    No
    Yes
    15 Votes (100%)
    No
    0 Votes (0%)

    Merge one or both diffs

    Frozen
    Reentrant
    Frozen
    9 Votes (60%)
    Reentrant
    6 Votes (40%)

    Asynchronous Signal Handling (without TICKs)

    Author
    Dmitry Stogov
    Target
    7.1
    Currently php may handle OS signals using pcntl extensions:

    Asynchronous Signal Handling

    Yes
    No
    Yes
    21 Votes (100%)
    No
    0 Votes (0%)

    Chose between old and new behavior in PHP 7.* using

    pcntl.async_signals INI directive
    pcntl_async_signals() function
    pcntl.async_signals INI directive
    4 Votes (18%)
    pcntl_async_signals() function
    18 Votes (82%)

    Throw Error in Extensions

    Author
    Aaron Piotrowski
    Target
    7.1
    With PHP 7, most fatal and recoverable errors in the engine where changed to instead throw an instance of Error. However this change was only made in the engine...

    Merge patch for PHP 7.1

    Yes
    No
    Yes
    21 Votes (100%)
    No
    0 Votes (0%)

    Additional Context in pcntl_signal Handler

    Author
    David Walker
    Author
    Target
    7.1
    Modern UNIX kernels include additional, contextual information when delivering a signal, however the callable handler for pcntl_signal does not receive this inf...

    Provide additional context in pcntl signal handler?

    Yes
    No
    Yes
    15 Votes (100%)
    No
    0 Votes (0%)

    Replace "Missing argument" warning with "Too few arguments" exception

    Author
    Dmitry Stogov
    Target
    7.1
    Historically, PHP allows calling functions with fewer actual parameters than required by the function definition. These non-passed arguments lead to warning emi...

    Replace

    Yes
    No
    Yes
    39 Votes (78%)
    No
    11 Votes (22%)

    Fix inconsistent behavior of $this variable

    Author
    Dmitry Stogov
    Target
    7.1
    Historically PHP implementation accessed special $this variable using two different methods. In some cases this might lead to significant inconsistency, when $t...

    Fix inconsistent behavior of $this variable?

    Yes
    No
    Yes
    43 Votes (100%)
    No
    0 Votes (0%)

    Random Functions Throwing Exceptions in PHP 7

    Author
    Author
    Aaron Piotrowski
    Target
    7.0
    Concern has been raised over the way failure is indicated by several functions in the core that are often used for security purposes. These functions may fail o...

    Should this RFC be accepted for 7.0

    Yes
    No
    Yes
    28 Votes (93%)
    No
    2 Votes (7%)

    Throwable Interface

    Author
    Aaron Piotrowski
    Target
    7.0
    PHP 7 has introduced exceptions as a replacement for fatal or recoverable fatal errors (see the Exceptions in the Engine RFC). These exceptions do not extend Ex...

    Throwable Interface

    Yes
    No
    Yes
    25 Votes (100%)
    No
    0 Votes (0%)

    Continue output buffering despite aborted connection

    Author
    Target
    7.0
    The output buffering technique is used to speed up output, but also to capture intermediate output and use it elsewhere.

    Continue output buffering on aborted connection?

    Yes
    No
    Yes
    15 Votes (100%)
    No
    0 Votes (0%)

    IntlChar class

    Author
    Target
    7.0
    ICU exposes a great deal of i18n/l10n functionality beyond what is currently exposed by PHP. This RFC seeks to expose just a little bit more...

    Accept the IntlChar RFC and merge into master?

    Yes
    No
    Yes
    14 Votes (100%)
    No
    0 Votes (0%)

    Native TLS

    Author
    ab
    Target
    7.0
    Currently, to access module globals in TS mode, a global resource array is used. That array contains globals from all the threads and per thread globals are ide...

    Native TLS

    Yes
    No
    Yes
    28 Votes (100%)
    No
    0 Votes (0%)

    Remove alternative PHP tags in PHP 7?

    Yes
    No
    Yes
    26 Votes (76%)
    No
    8 Votes (24%)

    Make defining multiple default cases in a switch a syntax error

    Author
    Target
    7.0
    Bug 67757 notes that the recently introduced PHP language specification differs from PHP's behavior when a switch statement defines multiple default cases. The...

    switch.default.multiple

    Yes
    No
    Yes
    28 Votes (100%)
    No
    0 Votes (0%)

    Closure::call

    Author
    Andrea Faulds
    Target
    7.0
    PHP has had Closures since 5.3, and since 5.4 has had Closure::bind (static method) and Closure::bindTo (method) to allow creating new closures that have $this ...

    Closure::apply() (Approve RFC and merge into master?)

    Yes
    No
    Yes
    13 Votes (100%)
    No
    0 Votes (0%)

    Move the phpng branch into master

    Author
    Dmitry Stogov
    Author
    Zeev Suraski
    Target
    7.0
    This RFC proposes to accept the phpng refactoring codebase as the basis for the future major version of PHP, and move it into master.

    Move phpng to master?

    Yes
    No
    Yes
    47 Votes (96%)
    No
    2 Votes (4%)

    intdiv()

    Author
    Andrea Faulds
    Target
    7.0
    PHP currently lacks a way to do integer division. While (int)(3 / 2), which does a floating-point division then casts to integer, does work most of the time, it...

    Merge the intdiv operator patch into master?

    Yes
    No
    Yes
    5 Votes (17%)
    No
    24 Votes (83%)

    If the operator vote fails to achieve a 2/3 majority, should the intdiv() function patch be merged into master?

    Yes
    No
    Yes
    28 Votes (100%)
    No
    0 Votes (0%)

    64 bit platform improvements for string length and integer in zval

    Author
    ab
    Author
    Author
    Target
    7.0
    Current PHP zval datatype implementation uses long datatype to handle signed integer and int datatype to handle string length. The most 64 bit capable platforms...

    Accept this RFC for PHP6 (or whatever next major is called)

    Yes
    No
    Yes
    28 Votes (55%)
    No
    23 Votes (45%)

    Merge strategy

    after the vote, master
    phpng
    after the vote, master
    17 Votes (30%)
    phpng
    40 Votes (70%)

    Catchable "call to a member function of a non-object"

    Author
    Target
    7.0
    One of the most common fatal errors in PHP is the call to a member function of a non-object type. This occurs whenever a method is called on anything other than...

    Catchable Call to a member function bar() on a non-object

    Yes
    No
    Yes
    32 Votes (100%)
    No
    0 Votes (0%)

    Combined Comparison (Spaceship) Operator

    Author
    Author
    Andrea Faulds
    Author
    Target
    7.0
    This RFC adds a new operator for combined comparison. Similar to strcmp() or version_compare() in behavior, but it can be used on all generic PHP values with th...

    Accept the Combined Comparison (Spaceship) Operator RFC and merge patch into master?

    Yes
    No
    Yes
    43 Votes (80%)
    No
    11 Votes (20%)

    __debugInfo()

    Author
    Target
    5.6

    Merge ___debugInfo()

    Yes (5.6)
    Yes (5.7)
    No
    Yes (5.6)
    23 Votes (85%)
    Yes (5.7)
    1 Votes (4%)
    No
    3 Votes (11%)

    Name ___debugInfo()

    __debugInfo()
    __debug()
    __debugInfo()
    23 Votes (96%)
    __debug()
    1 Votes (4%)

    Slim POST data

    Author
    Target
    5.6
    A memory usage improvement regarding receiving HTTP payloads with a potential reduction of 200-300%.

    RFC/slim_post_data

    Yes
    No
    Yes
    17 Votes (100%)
    No
    0 Votes (0%)

    Change crypt() behavior w/o salt

    Author
    Yasuo Ohgaki
    Target
    5.6
    crypt() without salt parameter produces too weak password hash. However, many users are using crypt() without salt parameter.

    Change crypt behavior when salt parameter is omitted.

    Generate strong salt by default
    Generate E_NOTICE error
    Keep current behavior (Use weak hash)
    Generate strong salt by default
    0 Votes (0%)
    Generate E_NOTICE error
    12 Votes (86%)
    Keep current behavior (Use weak hash)
    2 Votes (14%)

    DateTime and Daylight Saving Time Transitions

    Author
    PHP's DateTime class has unexpected outcomes when dealing with the transitions between Daylight Saving Time and Standard Time.

    MySQLi Execute Query

    Author
    Kamil Tekiela
    Author
    and Craig Francis [craig#at#craigfrancis.co.uk]
    Target
    8.2
    Make parameterised MySQLi queries easier, with mysqli_execute_query($sql, $params).

    mysqli_execute_query

    Yes
    No
    Yes
    24 Votes (100%)
    No
    0 Votes (0%)

    Session ID without hashing

    Author
    Yasuo Ohgaki
    Target
    7.1
    The objective of this RFC is session module code cleanup, remove unneeded code complexity and redundancy.

    Session ID without hashing Re-vote

    Yes
    No
    Yes
    9 Votes (100%)
    No
    0 Votes (0%)

    Session ID without hashing Re-vote: INI option

    Use new defaults (BC break)
    Use compatible defaults (No BC break)
    Use new defaults (BC break)
    3 Votes (30%)
    Use compatible defaults (No BC break)
    7 Votes (70%)