Implemented in PHP 7.0

RFC Categories

    Add preg_replace_callback_array function

    Author
    Target
    7.0
    Before 5.5.0, we can use the '/e' modifier. Here is a piece of code with 5.4.x:

    Generator Delegation

    Author
    Target
    7.0

    Allow Generator delegation in PHP7

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

    Constructor behaviour of internal classes

    Author
    Target
    7.0
    Several internal classes in extensions that ship with PHP exhibit some highly surprising behaviour. This RFC has two aims:

    Constructor behaviour of internal classes

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

    Reclassify E_STRICT notices

    Author
    Target
    7.0
    This RFC proposes to reclassify the few existing E_STRICT notices and remove this error category.

    Reclassify E_STRICT notices as described in this RFC?

    Yes
    No
    Yes
    28 Votes (88%)
    No
    4 Votes (13%)

    Easy User-land CSPRNG

    Author
    Sammy Kaye Powers
    Target
    7.0
    This RFC proposes adding a user-land API for an easy to use and reliable CSPRNG in PHP.

    Reliable user-land CSPRNG

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

    reserve_more_types_in_php_7

    Yes
    No
    Yes
    40 Votes (95%)
    No
    2 Votes (5%)

    Allow Generator return expressions in PHP7

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

    Accept Scalar Type Declarations With Optional Strict Mode?

    Yes
    No
    Yes
    108 Votes (69%)
    No
    48 Votes (31%)

    Context Sensitive Lexer

    Author
    Márcio Almada
    Target
    7.0
    PHP currently has around 64 globally reserved words. Not infrequently, these reserved words end up clashing with legit alternatives to userland API declarations...

    Should PHP7 have a context sensitive lexer?

    Yes
    No
    Yes
    36 Votes (75%)
    No
    12 Votes (25%)

    Fix "foreach" behavior

    Author
    Dmitry Stogov
    Target
    7.0
    The behavior of foreach statement in PHP for some edge cases is not exactly defined. Actually, it is implementation driven and quite weird.

    Fix foreach behavoir?

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

    Stop using internal array/object pointer in foreach by reference?

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

    Group Use Declarations

    Author
    Márcio Almada
    Target
    7.0
    This RFC aims to improve current PHP namespace implementation by introducing the concept of Group Use Declarations:

    Should Grouped Use Declarations be added to PHP 7

    Yes - with a trailing "\"
    Yes - without a trailing "\"
    No
    Yes - with a trailing "\"
    32 Votes (55%)
    Yes - without a trailing "\"
    7 Votes (12%)
    No
    19 Votes (33%)

    Remove the date.timezone warning

    Author
    Bob Weinand
    Target
    7.0
    PHP should be usable without configuring it through either an ini file or defining settings on the command line. Currently this is not possible as the date.time...

    Should the warning about a not set date.timezone ini setting be removed in master?

    Yes
    No
    Yes
    32 Votes (74%)
    No
    11 Votes (26%)

    Turn gc_collect_cycles into function pointer

    Author
    Benjamin Eberlei
    Author
    Target
    7.0
    This RFC proposes to change gc_collect_cycles into a hookable function pointer. The goal is to allow extensions to hook into garbage collection for profiling.

    Turn gc_collect_cycles into function pointer?

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

    Replacing current json extension with jsond

    Author
    Target
    7.0
    The current Json Parser in the json extension does not have a free license which is a problem for many Linux distros. This has been referenced at Bug #63520. Th...

    Should jsond based extension replace the current json extension in PHP 7?

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

    Preserve Fractional Part in JSON encode

    Author
    Juan Basso
    Target
    7.0
    This RFC suggests adding a new option to json_encode function to keep the fractional part on float values.

    Preserve Fractional Part in JSON encode

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

    Unicode Codepoint Escape Syntax

    Author
    Andrea Faulds
    Target
    7.0
    Despite the wide and increasing adoption of Unicode (and UTF-8 in particular) in PHP applications, PHP does not yet have a Unicode codepoint escape syntax in st...

    Accept the Unicode Codepoint Escape Syntax RFC and merge into master?

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

    Remove PHP 4 Constructors

    Author
    Target
    7.0
    PHP 4 constructors are methods that have the same name as the class they are defined in. PHP 5 preserved the ability to use PHP 4 style constructors in some cas...

    remove_php4_constructors

    Yes
    No
    Yes
    50 Votes (93%)
    No
    4 Votes (7%)

    Exceptions in the engine (for PHP 7)

    Author
    Target
    7.0
    This RFC proposes to allow the use of exceptions in the engine and to allow the replacement of existing fatal or recoverable fatal errors with exceptions.

    Allow exceptions in the engine and conversion of existing fatals?

    Yes
    No
    Yes
    60 Votes (97%)
    No
    2 Votes (3%)

    Introduce and use BaseException?

    Yes
    No
    Yes
    39 Votes (67%)
    No
    19 Votes (33%)

    ZPP Failure on Overflow

    Author
    Andrea Faulds
    Target
    7.0
    PHP is a weakly-typed language, and so implicitly converts between integers and floats when such values are passed to internal functions. Currently, when a floa...

    Accept the ZPP Failure on Overflow RFC and merge into master?

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

    Remove deprecated functionality in PHP 7

    Author
    Target
    7.0
    This RFC proposes to remove functionality which has been deprecated during the 5.x cycle.

    Unbundle the ext/ereg extension?

    Yes
    No
    Yes
    37 Votes (93%)
    No
    3 Votes (8%)

    Unbundle the ext/mysql extension?

    Yes
    No
    Yes
    28 Votes (70%)
    No
    12 Votes (30%)

    Remove assignment of new by reference?

    Yes
    No
    Yes
    31 Votes (84%)
    No
    6 Votes (16%)

    Remove support for calls from incompatible context?

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

    Remove dl() in fpm-fcgi SAPI?

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

    Remove (set_)magic_quotes_runtime() functions?

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

    Remove listed deprecated functions?

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

    Remove xsl.security_prefs ini directive?

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

    Remove extension specific encoding ini directives?

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

    Remove $is_dst parameter of the mktime() and gmmktime() functions?

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

    Remove support for #-style comments in ini files?

    Yes
    No
    Yes
    27 Votes (87%)
    No
    4 Votes (13%)

    Disallow string category names in setlocale()?

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

    Disallow enabling unsafe curl uploads?

    Yes
    No
    Yes
    19 Votes (76%)
    No
    6 Votes (24%)

    Remove preg_replace() eval modifier?

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

    Remove PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT driver option?

    Yes
    No
    Yes
    20 Votes (80%)
    No
    5 Votes (20%)

    Remove CN_match and SNI_server_name stream context options?

    Yes
    No
    Yes
    20 Votes (80%)
    No
    5 Votes (20%)

    Fix list() behavior inconsistency

    Author
    Dmitry Stogov
    Target
    7.0
    According to PHP documentation list() construct doesn't work with strings. However in some cases it works.

    Fix list() behavior inconsistency?

    don't fix
    disable string handling in all cases
    enable string handling in all cases
    don't fix
    0 Votes (0%)
    disable string handling in all cases
    17 Votes (52%)
    enable string handling in all cases
    16 Votes (48%)

    Null Coalesce Operator

    Author
    Andrea Faulds
    Target
    7.0
    PHP is a web-focussed programming language, so processing user data is a frequent activity. In such processing it is common to check for something's existence, ...

    Approve Null Coalesce Operator RFC and merge patch into master?

    Yes
    No
    Yes
    31 Votes (91%)
    No
    3 Votes (9%)

    Integer Semantics

    Author
    Andrea Faulds
    Target
    7.0
    This RFC improves cross-platform consistency in PHP for some operations dealing with integers, and makes PHP's behaviour more intuitive, as well as partly pavin...

    Accept the integer semantics RFC and merge patch into master?

    Yes
    No
    Yes
    16 Votes (67%)
    No
    8 Votes (33%)

    Remove hex support in numeric strings

    Author
    Target
    7.0
    This RFC proposes to remove support for hexadecimal numers in is_numeric_string. Support for hex in this function is inconsistent with behavior in other places ...

    Remove hex support in numeric strings?

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

    Uniform Variable Syntax

    Author
    Target
    7.0
    This RFC proposes the introduction of an internally consistent and complete variable syntax. To achieve this goal the semantics of some rarely used variable-var...

    Implement Uniform Variable Syntax in PHP 6?

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

    Fast Parameter Parsing API

    Author
    Dmitry Stogov
    Author
    Bob Weinand
    Target
    7.0
    PHP internal functions use zend_parse_parameters() API to receive values of actual parameters into C variables. This function uses scanf() like approach for par...

    Should PHP 7 have Fast Parameter Parsing API?

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

    Fix handling of custom session handler return values

    Author
    Target
    7.0
    The logic in ext/session/mod_user.c is just plain wrong.

    Fix custom session save handler using the patch as written

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

    Which version?

    5.6 or later
    5.7 or later
    6.0 or later
    5.6 or later
    0 Votes (0%)
    5.7 or later
    9 Votes (75%)
    6.0 or later
    3 Votes (25%)

    Return Type Declarations

    Author
    Target
    7.0
    Many developers would like to be able to declare the return type of a function. The basic idea of declaring a return type has been included in at least three RF...

    Typed Returns

    Yes
    No
    Yes
    47 Votes (94%)
    No
    3 Votes (6%)

    Expectations

    Author
    Author
    Target
    7.0
    The assertion statement has the prototype:

    Merge changes into master?

    Yes, with custom exceptions
    Yes, without custom exceptions
    No
    Yes, with custom exceptions
    29 Votes (66%)
    Yes, without custom exceptions
    14 Votes (32%)
    No
    1 Votes (2%)

    Anonymous Classes

    Author
    Author
    Target
    7.0
    For some time PHP has featured anonymous function support in the shape of Closures; this patch introduces the same kind of functionality for objects of an anony...

    Anonymous Classes

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

    Filtered unserialize()

    Author
    Target
    7.0
    unserialize() in PHP has certain security issues, brought by the fact that serialized data can include objects with data, and once these objects are instantiate...

    Approve filtered unserialize() proposal?

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