https://wiki.php.net/rfc
ImplementedOrder in these sections: Language changes first, library changes later.
- Constants in Traits (https://wiki.php.net/rfc/constants_in_traits) (Created 2022-06-21, Voting closed: 2022-07-19)
- Random Extension 5.x (https://wiki.php.net/rfc/rng_extension) (Created 2021-05-19, Voting closed: 2022-06-28)
- Random Extension Improvement (https://wiki.php.net/rfc/random_extension_improvement) (Created 2022-06-16, Voting closed: 2022-07-16)
- Fetch properties of enums in const expressions (https://wiki.php.net/rfc/fetch_property_in_const_expressions) (Created 2022-05-27)
- Disjunctive Normal Form Types (https://wiki.php.net/rfc/dnf_types) (Created 2021-11-04, Voting opened: 2022-06-17, Voting closed: 2022-07-03)
- Add true type (https://wiki.php.net/rfc/true-type) (Created 2022-04-07, Voting opened: 2022-05-29, Voting closed: 2022-06-12)
- MySQLi Execute Query (https://wiki.php.net/rfc/mysqli_execute_query) (Created 2022-04-21, Voting opened: 2022-05-11, Voting closed: 2022-05-25)
- Readonly classes (https://wiki.php.net/rfc/readonly_classes) (Created 2021-08-04)
- Allow null and false as stand-alone types (https://wiki.php.net/rfc/null-false-standalone-types) (Created 2022-02-20, Voting start: 2022-03-12, Voting end: 2022-03-27)
- Locale-independent case conversion (https://wiki.php.net/rfc/strtolower-ascii) (Created 2021-09-22)
- Deprecate partially supported callables (https://wiki.php.net/rfc/deprecate_partially_supported_callables) (Created 2021-09-02)
- Expand deprecation notice scope for partially supported callables (https://wiki.php.net/rfc/partially-supported-callables-expand-deprecation-notices) (Created 2022-05-12, Voting opened: 2022-05-31)
- Deprecate dynamic properties (https://wiki.php.net/rfc/deprecate_dynamic_properties) (Created 2021-08-23)
- Redacting parameters in back traces (https://wiki.php.net/rfc/redact_parameters_in_back_traces) ( Created 2022-01-10 )
- Deprecate ${} string interpolation (https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation) (Created on 2021-03-13)
- Remove support for libmysql from mysqli (https://wiki.php.net/rfc/mysqli_support_for_libmysql) ( Created 2022-01-06)
- Deprecate and remove utf8_decode() and utf8_encode() (https://wiki.php.net/rfc/remove_utf8_decode_and_utf8_encode)
- Make the iterator_*() family accept all iterables (https://wiki.php.net/rfc/iterator_xyz_accept_array) (Created 2022-06-21, Voting opened: 2022-07-05)
- Disable autovivification on false (https://wiki.php.net/rfc/autovivification_false) (Created 2021-05-25)
- Pure intersection types (https://wiki.php.net/rfc/pure-intersection-types) (Created 2021-03-23, Voting started 2021-06-03, Voting ended 2021-06-17, Merged 2021-07-05)
- Add IntlDatePatternGenerator (https://wiki.php.net/rfc/intldatetimepatterngenerator) (Voting started 2021-05-14 and ended 2021-05-28)
- Deprecate implicit non-integer-compatible float to int conversions (https://wiki.php.net/rfc/implicit-float-int-deprecate) (Voting started 2021-04-01, Voting ended 2021-04-14)
- Enumerations (https://wiki.php.net/rfc/enumerations) (Created 2020-09-19)
- Deprecate passing null to non-nullable arguments of internal functions (https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg) (Created 2020-12-01)
- Array unpacking with string keys (https://wiki.php.net/rfc/array_unpacking_string_keys) (Created 2021-01-07)
- Add array_is_list(array $array): bool (https://wiki.php.net/rfc/is_list) (Created 2020-12-19)
- Explicit octal integer literal notation (https://wiki.php.net/rfc/explicit_octal_notation) (Created: 2020-10-20, Voting Started: 2020-11-11, Voting Ended: 2020-11-25, Merged into master: 2021-01-04)
- Restrict $GLOBALS usage (https://wiki.php.net/rfc/restrict_globals_usage) (Created 2020-12-02)
- Change Default mysqli Error Mode (https://wiki.php.net/rfc/mysqli_default_errmode) (Created 2021-01-20)
- Add fetch_column method to mysqli (https://wiki.php.net/rfc/mysqli_fetch_column) (Created 2021-03-28)
- Mysqli bind in execute (https://wiki.php.net/rfc/mysqli_bind_in_execute) (Created 2021-02-11)
- fsync() Function (https://wiki.php.net/rfc/fsync_function) (Created 2021-01-30)
- noreturn type (https://wiki.php.net/rfc/noreturn_type) (Voting started 2021-03-30)
- Fibers (https://wiki.php.net/rfc/fibers) (Created 2020-12-04)
- Phasing out Serializable (https://wiki.php.net/rfc/phase_out_serializable) (Created 2020-12-07)
- Static variables in inherited methods (https://wiki.php.net/rfc/static_variable_inheritance) (Created 2021-02-23)
- Add return type declarations for internal methods (https://wiki.php.net/rfc/internal_method_return_types) (Created 2021-03-06)
- Final class constants (https://wiki.php.net/rfc/final_class_const) (Created 2021-05-04)
- Make reflection setAccessible() no-op (https://wiki.php.net/rfc/make-reflection-setaccessible-no-op) (Created 2021-06-13)
- New in initializers (https://wiki.php.net/rfc/new_in_initializers) (Created 2021-03-02)
- Deprecations for PHP 8.1 (https://wiki.php.net/rfc/deprecations_php_8_1) (Created 2019-07-23)
- First-class callable syntax (https://wiki.php.net/rfc/first_class_callable_syntax) (Created 2021-05-20)
- Readonly properties 2.0 (https://wiki.php.net/rfc/readonly_properties_v2) (Created 2021-06-02)
- Don't automatically unserialize Phar metadata outside getMetadata() (https://wiki.php.net/rfc/phar_stop_autoloading_metadata) (Created 2020-07-07)
- Reclassifying engine warnings (https://wiki.php.net/rfc/engine_warnings)
Reevaluate the current level of various engine notices/warnings. (Created: 2019-08-27) - Shorter Attribute Syntax (https://wiki.php.net/rfc/shorter_attribute_syntax)
Use @@ instead of <<>> for attributes in PHP 8.0 (Created 2020-06-03) - Ensure correct signatures of magic methods (https://wiki.php.net/rfc/magic-methods-signature) (Created 2020-04-05)
- Named Arguments (https://wiki.php.net/rfc/named_params)
This RFC proposes introducing named arguments. (Created 2013-09-06) - Treat namespaced names as single token (https://wiki.php.net/rfc/namespaced_names_as_token) (Created 2020-06-16)
- Saner string to number comparison (https://wiki.php.net/rfc/string_to_number_comparison)
Proposes to change non-strict comparisons between strings and numbers to behave more reasonably. (Created: 2019-02-26) - Saner numeric strings (https://wiki.php.net/rfc/saner-numeric-strings) (Created 2020-06-28)
- Nullsafe operator (https://wiki.php.net/rfc/nullsafe_operator)
Add new ?-> operator that skips null values (Created 2020-06-02) - Allow trailing comma in closure use lists (https://wiki.php.net/rfc/trailing_comma_in_closure_use_list) (Created 2020-07-01)
- Configurable string length in getTraceAsString() (https://wiki.php.net/rfc/throwable_string_param_max_len) (Created 2020-06-27)
- Remove inappropriate inheritance signature checks on private methods (https://wiki.php.net/rfc/inheritance_private_methods)
Proposes that inappropriate inheritance checks are removed for private methods (Created: 2017-02-07) - Match expression v2 (https://wiki.php.net/rfc/match_expression_v2)
Introduce match expression (Created 2020-05-22) - Attribute Amendments (https://wiki.php.net/rfc/attribute_amendments)
Group Syntax, Rename PhpAttribute, Target Validation, Repeatable (Created 2020-05-20) - Make sorting stable (https://wiki.php.net/rfc/stable_sorting)
Make all sorts in PHP stable by default (Created 2020-05-12) - Constructor Property Promotion (https://wiki.php.net/rfc/constructor_promotion)
Adds a short-hand syntax to combine declaration of properties and the constructor. (Created 2020-03-26) - Attributes (v2) (https://wiki.php.net/rfc/attributes_v2)
Add structured metadata to declarations (classes, functions, properties, constants) for internal and userland use-cases. (Created 2020-03-09) - Unbundle ext/xmlrpc (https://wiki.php.net/rfc/unbundle_xmlprc)
(Created 2020-04-25; Accepted 2020-05-26) - Always available JSON extension (https://wiki.php.net/rfc/always_enable_json)
(Created 2020-04-29) - Non-capturing catches (https://wiki.php.net/rfc/non-capturing_catches)
Allow catching exceptions without a variable (Created 2020-04-05) - Mixed type v2 (https://wiki.php.net/rfc/mixed_type_v2)
Add the mixed type (Created 2020-03-22) - Locale-independent float to string cast (https://wiki.php.net/rfc/locale_independent_float_to_string) (Created 2020-03-11)
- Change default PDO error mode (https://wiki.php.net/rfc/pdo_default_errmode) (Created 2020-03-28)
- Stricter type checks for arithmetic/bitwise operators (https://wiki.php.net/rfc/arithmetic_operator_type_checks) (Created 2020-04-02)
- Add str_starts_with and str_ends_with to PHP (https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions) (Created 2020-03-25)
- Allow trailing comma in parameter list (https://wiki.php.net/rfc/trailing_comma_in_parameter_list) (Created 2020-03-26)
- throw expression (https://wiki.php.net/rfc/throw_expression)
Convert throw statement into an expression (Created 2020-03-21) - Object-based token_get_all() alternative (https://wiki.php.net/rfc/token_as_object)
Adds an object-based token_get_all() alternative, which is more ergonomic and uses less memory. (Created: 2020-02-13) - Abstract trait method validation (https://wiki.php.net/rfc/abstract_trait_method_validation)
Enforce signature of abstract trait methods. (Created: 2020-02-07) - Stringable (https://wiki.php.net/rfc/stringable)
Allow using string|Stringable to express string|object-with-__toString(). (Created 2020-01-15) - Allow ::class on objects (https://wiki.php.net/rfc/class_name_literal_on_object)
Adds support for $object::class. (Created: 2020-01-09) - Static return type (https://wiki.php.net/rfc/static_return_type)
Adds support for static as a return type. (Created: 2020-01-08) - Variable Syntax Tweaks (https://wiki.php.net/rfc/variable_syntax_tweaks)
Fixes variable syntax edge cases. (Created: 2020-01-07) - Union Types v2 (https://wiki.php.net/rfc/union_types_v2)
A proposal to add union types (Created 2019-09-04) - DOM Living Standard API (https://wiki.php.net/rfc/dom_living_standard_api)
Upgrade DOM API to latest standard version (Created: 2019-03-13) - Always generate fatal error for incompatible method signatures (https://wiki.php.net/rfc/lsp_errors)
Resolve inconsistent handling of abstract and non-abstract methods during inheritance. (Created: 2019-04-08) - Arrays starting with a negative index (https://wiki.php.net/rfc/negative_array_index)
Proposes to make implicit array keys consistent. (Created: 2017-04-20) - Consistent type errors for internal functions (https://wiki.php.net/rfc/consistent_type_errors)
Consistently throw TypeError for parameter parsing failures of internal functions. (Created: 2019-02-05, Voting started: 2019-02-19) - JIT (https://wiki.php.net/rfc/jit)
Just in Time Compiler. (Created: 2019-01-28) - Weak maps (https://wiki.php.net/rfc/weak_maps)
Add a WeakMap class (Created: 2019-11-04) - str_contains (https://wiki.php.net/rfc/str_contains)
Adds a new function to return whether or not a string is contained within another. (Created: 2020-02-17) - get_debug_type (https://wiki.php.net/rfc/get_debug_type)
Adds a new function to return the true type name of a variable, automatically resolving class names. (Created: 2020-02-15) - Add support for CMS (https://wiki.php.net/rfc/add-cms-support)
Exposes CMS API from OpenSSL (Created 2020-05-13)
- Deprecate alternate access to array elements and chars in string (https://wiki.php.net/rfc/deprecate_curly_braces_array_access)
Deprecate curly braces array and string syntax access. (Created: 2019-03-12; Discussion started:2019-03-15; Voting started: 2019-07-03; Voting ends: 2019-07-17; Accepted: 2019-07-17) - E_WARNING for invalid containers (https://wiki.php.net/rfc/notice-for-non-valid-array-container)
Raise E_WARNING for array access on invalid containers (Created 2016-07-27) - Base Convert improvements (https://wiki.php.net/rfc/base_convert_improvements)
Changes to base convert to warn the user when incorrect values are passed. Also allow negative numbers to be parsed. (Discussion started: 2019-05-18 | Accepted 2019-07-05) - Numeric Literal Separator (https://wiki.php.net/rfc/numeric_literal_separator)
Enable improved code readability by supporting an underscore between digits in numeric literals. (Accepted: 2019-06-13) - Covariant Returns and Contravariant Parameters (https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters)
(Announced: 2018-11-26; Voting began: 2018-12-19) - Allow throwing exceptions from __toString() (https://wiki.php.net/rfc/tostring_exceptions)
Support throwing exceptions from __toString(). (Created: 2019-04-30) - Spread Operator in Array Expression (https://wiki.php.net/rfc/spread_operator_for_array)
(Created: 2018-10-13) - Deprecate left-associative ternary operator (https://wiki.php.net/rfc/ternary_associativity)
Deprecate nesting of ternaries without explicit use of parentheses. (Created: 2019-04-09) - Arrow functions 2.0 (https://wiki.php.net/rfc/arrow_functions_v2)
Adds short closures / arrow functions. - Deprecate and remove ext/interbase (https://wiki.php.net/rfc/deprecate-and-remove-ext-interbase)
Deprecate and eventually remove the InterBase extension in the Core (Created 2019-03-22) - weakrefs (https://wiki.php.net/rfc/weakrefs)
(Created: 2018-05-17, Voting started: 2019-02-22) - FFI - Foreign Function Interface (https://wiki.php.net/rfc/ffi)
(Announced: 2018-12-06; Voting began: 2018-12-20; Accepted: 2019-01-09) - Typed Properties 2.0 (https://wiki.php.net/rfc/typed_properties_v2)
Add support for typed properties, including static properties and references to typed properties. (Created: 2018-06-15) - Null Coalesce Equal Operator (https://wiki.php.net/rfc/null_coalesce_equal_operator)
Allow shorthand for self assigning null coalesce operator (Created 2016-03-09) - Preloading (https://wiki.php.net/rfc/preload)
Preload PHP functions and classes once and use them in the context of any future request without overhead. (Created: 2018-10-18) - Always available hash extension (https://wiki.php.net/rfc/permanent_hash_ext)
Proposes to make the hash extension available to every build of PHP. (Created: 04/09-2018) - Password Hash Registry (https://wiki.php.net/rfc/password_registry)
Make the mechanisms used by password_hash/verify/etc… extensible by other modules. (Created: 2018-10-15) - Improve openssl_random_pseudo_bytes() (https://wiki.php.net/rfc/improve-openssl-random-pseudo-bytes)
Proposes making openssl_random_pseudo_bytes() fail closed and deprecate the second parameter (Created: 2019-10-19) - mb_str_split() Split multibyte string (https://wiki.php.net/rfc/mb_str_split)
(Announced: 2019-01-02; Voting began: 2019-01-10; Accepted: 2019-01-20; Implemented: 2019-02-12) - Reflection for references (https://wiki.php.net/rfc/reference_reflection)
Introduces the ReflectionReference class to allow detecting references and determining reference equality. (Created: 2019-01-15; Voting began: 2019-01-30) - Unbundle ext/wddx (https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx)
(Announced: 2018-09-16; Voting began: 2019-01-17 Voting finished: 2019-01-31) - New custom object serialization mechanism (https://wiki.php.net/rfc/custom_object_serialization)
Introduces new custom object serialization mechanism to replace Serializable. (Created: 2019-01-24, Voting start: 2019-03-01) - Change the precedence of the concatenation operator (https://wiki.php.net/rfc/concatenation_precedence)
Update the precedence of concatenation to be inferior to addition and subtraction (Created: 2019-03-28) - Argon2 support from sodium (https://wiki.php.net/rfc/sodium.argon.hash)
Provide password_hash() support for argon2i/argon2id from ext/sodium if standard does not. (Created: 2019-04-05) - Unbundle ext/recode (https://wiki.php.net/rfc/unbundle_recode)
(Discussion started: 2019-06-14; voting started: 2019-06-28; voting ends: 2019-07-12) - Escape PDO "?" parameter placeholder (https://wiki.php.net/rfc/pdo_escape_placeholders)
Changes to PDO to allow using operators containing “?” with pdo_pgsql, most commonly the JSON key exists “?” operator. (Discussion started: 2019-05-31; Voting started: 2019-07-08; Accepted: 2019-07-22)
- Flexible Heredoc and Nowdoc Syntaxes (https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes)
Allow indentation of, and remove newline requirement after, Nowdoc/Heredoc closing markers (Published: 2017-09-16, Accepted 2017-11-16) - Allow a trailing comma in function calls (https://wiki.php.net/rfc/trailing-comma-function-calls) (Published 2017-10-07)
- JSON_THROW_ON_ERROR (https://wiki.php.net/rfc/json_throw_on_error)
Adds a flag to change the JSON extension's error-handling behaviour (Created: 2017-09-10) - PCRE2 Migration (https://wiki.php.net/rfc/pcre2-migration) (Published 2017-10-16)
- list() Reference Assignment (https://wiki.php.net/rfc/list_reference_assignment)
This RFC proposes a new syntax to enable reference assignment with list(). (Created 2013/10/25, withdrawn 2014-05-15, Commandeered and Reopened: 2016-12-30, Accepted 2017-02-22) - is_countable function (https://wiki.php.net/rfc/is-countable) (Created: 2018-01-21)
- array_key_first(), array_key_last() (https://wiki.php.net/rfc/array_key_first_last)
Add functions for handling the outer keys of an array (Created: 2018-06-11; Voting from 2018-07-09 to 2018-07-16) - Make compact function reports undefined passed variables (https://wiki.php.net/rfc/compact)
(Created: 2018-05-24; Voting from 2018-06-06 to 2018-06-18) - Argon2 Password Hash Enhancements (https://wiki.php.net/rfc/argon2_password_hash_enhancements)
(Created: 2018-01-11; Voting from 2018-06-06 to 2018-06-18) - Deprecate and Remove image2wbmp() (https://wiki.php.net/rfc/image2wbmp)
(Created: 2018-05-11; Voting from 2018-05-26 to 2018-06-09) - Deprecate and Remove Case-Insensitive Constants (https://wiki.php.net/rfc/case_insensitive_constant_deprecation)
Support for case-insensitive constants is deprecated and scheduled for removal in the next major version. - Deprecations for PHP 7.3 (https://wiki.php.net/rfc/deprecations_php_7_3)
Miscellaneous minor deprecations for PHP 7.3. - Same Site Cookie (https://wiki.php.net/rfc/same-site-cookie)
Add same site flag to cookies created by core cookie functions (Created: 2017-07-16)
- Allow loading extensions by name (https://wiki.php.net/rfc/load-ext-by-name) (Created: 2016-05-10)
- Allow abstract function override (https://wiki.php.net/rfc/allow-abstract-function-override)
Allow redefinition of “abstract functions” (Created: 2017-03-01) - Prevent number_format() from returning negative zero (https://wiki.php.net/rfc/number_format_negative_zero)
Bring consistency to number_format() for negative zero. (Created: 2017-04-01) - Convert numeric keys in object/array casts (https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts)
Fix an edge case in casting objects to arrays and vice-versa. (Created: 2016-10-21) - Deprecate and Remove Bareword (Unquoted) Strings (https://wiki.php.net/rfc/deprecate-bareword-strings)
Raises the severity of “undefined constant” to E_WARNING and deprecates the fallback to interpreting as a string. (Created: 2017-01-29) - get_class() disallow null parameter (https://wiki.php.net/rfc/get_class_disallow_null_parameter)
Prevent get_class() having astonishing behaviour - Counting of non-countable objects (https://wiki.php.net/rfc/counting_non_countables)
Raise a warning when counting invalid objects. (Created: 2016-10-04) - Parameter Type Widening (https://wiki.php.net/rfc/parameter-no-type-variance)
Allow subclasses to omit a type entirely (Created: 2016-11-21) - Trailing commas in list syntax (https://wiki.php.net/rfc/list-syntax-trailing-commas)
Allow for trailing commas in all list syntax (Created 2015-11-03) - Deprecate png2wbmp() and jpeg2wbmp() (https://wiki.php.net/rfc/deprecate-png-jpeg-2wbmp)
Deprecate and later remove the png2wbmp() and jpeg2wbmp() functions. (Created: 2016-10-15) - Implement socket_getaddrinfo() (https://wiki.php.net/rfc/socket_getaddrinfo)
Implement getaddrinfo() to socket extension. (Created: 2016-08-08) - Argon2 in password hash (https://wiki.php.net/rfc/argon2_password_hash)
Introduce Argon2 hashing algorithm to password functions (Created: 2016-07-10) - Debugging PDO Prepared Statement Emulation (https://wiki.php.net/rfc/debugging_pdo_prepared_statement_emulation)
Allow the output of this feature to be examined in userland. (Created: 2016-10-17) - Debugging PDO Prepared Statement Emulation v2 (https://wiki.php.net/rfc/debugging_pdo_prepared_statement_emulation_v2)
Another approach to allowing the output of this feature to be examined in userland. (Created: 2016-11-17) - HashContext as Object (https://wiki.php.net/rfc/hash-context.as-resource)
Change Hash Contexts to use Objects instead of Resources - Deprecate and remove INTL_IDNA_VARIANT_2003 (https://wiki.php.net/rfc/deprecate-and-remove-intl_idna_variant_2003) (Created: 2017-01-07)
- Extended String Types For PDO (https://wiki.php.net/rfc/extended-string-types-for-pdo)
Types to handle “national character,” i.e. Unicode, string parameters. (Created: 2017-02-16) - Improve TLS constants to sane values (https://wiki.php.net/rfc/improved-tls-constants) (Created 2017-05-15)
- Object typehint (https://wiki.php.net/rfc/object-typehint)
Proposes adding object
type-hint and return-type (Created: 2016-08-12) - LDAP EXOP (https://wiki.php.net/rfc/ldap_exop)
Provide functions to use LDAP extended operations in php-ldap (Created: 2017-06-26) - Libsodium (https://wiki.php.net/rfc/libsodium)
Make Libsodium a Core Extension (Created 2016-01-07) - Deprecations for PHP 7.2 (https://wiki.php.net/rfc/deprecations_php_7_2)
Functions and features to be deprecated in PHP 7.2 (Created 2015-12-28)
- Session ID without hashing (https://wiki.php.net/rfc/session-id-without-hashing)
Remove hash usage from session ID generation. (Created 2016-04-06) - Asynchronous Signal Handling (https://wiki.php.net/rfc/async_signals)
Asynchronous Signal Handling without TICKs and any additional overhead. (Created 2016-06-24) - Fix inconsistent behavior of $this variable (https://wiki.php.net/rfc/this_var)
Fix all known inconsistencies related to special variable $this (Discussion began 2016-05-23) - Replace "Missing argument" warning with "Too few arguments" exception (https://wiki.php.net/rfc/too_few_args)
(Created 2016-06-01) - Nullable Types (https://wiki.php.net/rfc/nullable_types)
Allow a type check to be of some type or null (Discussion began 2016-04-13) - Square bracket syntax for array destructuring assignment (https://wiki.php.net/rfc/short_list_syntax)
An alternative syntax to [php]list()[/php]
(Created 2016-04-07) - Warn about invalid strings in arithmetic (https://wiki.php.net/rfc/invalid_strings_in_arithmetic)
Produce E_NOTICE or E_WARNING when using invalid numeric strings with arithmetic operators (Created 2016-01-08) - Allow specifying keys in list() (https://wiki.php.net/rfc/list_keys)
Adds syntax to help unpacking associative arrays into variables (Created 2016-01-17) - Iterable (https://wiki.php.net/rfc/iterable)
Iterable pseudo-type accepting arrays or objects implementing Traversable (Created 2016-06-10) - Generalize support of negative string offsets (https://wiki.php.net/rfc/negative-string-offsets)
Add support for negative string offsets everywhere it makes sense (Created 2016-01-23) - Closure from callable function (https://wiki.php.net/rfc/closurefromcallable)
Add a function to create closures from callables without reflection - Deprecate mb_ereg_replace eval option (https://wiki.php.net/rfc/deprecate_mb_ereg_replace_eval_option)
This RFC aims at deprecating the e option that mb_ereg_replace and mb_eregi_replace provide. - Deprecate (and remove) Mcrypt (https://wiki.php.net/rfc/mcrypt-viking-funeral)
Let's get rid of ext/mcrypt, which is abandonware and inhibits the growth of the language, as soon as humanly possible. (Created 2016-01-09) - OpenSSL AEAD support (https://wiki.php.net/rfc/openssl_aead)
Adds support for AEAD cipher modes (GCM and CCM) to openssl_decrypt and openssl_encrypt. - Void Return Type (https://wiki.php.net/rfc/void_return_type)
Adds a void return type to require that a function does not return a value. (Revived 2015-10-04, originally created 2015-02-14) - Class constant visibility modifiers (https://wiki.php.net/rfc/class_const_visibility)
Introduce class constants visibility modifiers that mirror properties and methods. (Created 2015/09/13) - Octal Overflow Protection (https://wiki.php.net/rfc/octal.overload-checking)
Stop quietly ignoring overflows in octal number parsing (Created: 2016-04-12) - RNG fixes and changes (https://wiki.php.net/rfc/rng_fixes)
Fixes and improvements to the random number generation subsystems (Created 2016-06-14) - Add HTTP/2 Server Push support to ext/curl (https://wiki.php.net/rfc/curl_http2_push) (Created 2015/10/01)
- TimeZone::getWindowsID (https://wiki.php.net/rfc/intl.timezone.get-windows-id) (Created (2016/03/15)
- Multi catch (https://wiki.php.net/rfc/multiple-catch)
Catching multiple exception types in a single catch statement (Created 2016/03/06) - Forbid dynamic calls to scope introspection functions (https://wiki.php.net/rfc/forbid_dynamic_scope_introspection) (Created 2016-05-01)
- Add curl_multi_errno(), curl_share_errno() and curl_share_strerror() (https://wiki.php.net/rfc/new-curl-error-functions) (Created: 2016-04-29)
- Throw Error in Extensions (https://wiki.php.net/rfc/throw_error_in_extensions)
Convert E_ERROR and E_RECOVERABLE_ERROR to throw Error in extensions (Created 2016-06-14) - More precise float value handling (https://wiki.php.net/rfc/precise_float_value)
This RFC proposes more precise float value handling. - Additional Context in pcntl_signal Handler (https://wiki.php.net/rfc/additional-context-in-pcntl-signal-handler)
Adds a second array argument to pcntl_signal
handler (Created 2016-06-14) - Add session_create_id() (https://wiki.php.net/rfc/session-create-id)
Add session_create_id() function (Created 2016-04-07) - Add session_gc() (https://wiki.php.net/rfc/session-gc)
Add session_gc() function (Created 2016-04-06)
- Random Functions throwing Exceptions (https://wiki.php.net/rfc/random-function-exceptions)
This RFC proposes that the random_* functions should throw exceptions on failure. - Throwable Interface (https://wiki.php.net/rfc/throwable-interface)
Proposes a modification to the exception hierarchy for PHP 7, introducing a Throwable interface and Error class. - Context Sensitive Lexer (https://wiki.php.net/rfc/context_sensitive_lexer)
Proposal to have a context sensitive lexer for PHP with support for semi-reserved words (Created 2015-02-15) - Add preg_replace_callback_array function (https://wiki.php.net/rfc/preg_replace_callback_array)
A RFC proposing each pattern can easily have a specific callback. - Reliable User-land CSPRNG (https://wiki.php.net/rfc/easy_userland_csprng)
A proposal to add a reliable CSPRNG (Created 2015-02-20) - Anonymous Class Support (https://wiki.php.net/rfc/anonymous_classes)
This RFC proposes support for anonymous classes. - Generator Delegation (https://wiki.php.net/rfc/generator-delegation)
This RFC proposes new syntax to delegate generator function operations to sub-iterators/generators (Created 2015-03-01) - Reserve More Type Names in PHP 7 (https://wiki.php.net/rfc/reserve_more_types_in_php_7)
Reserves int, float, string, bool, true, false and null in class names or namespaces. (Created 2015-02-18) - Constructor behaviour of internal classes (https://wiki.php.net/rfc/internal_constructor_behaviour)
Cleanup undesirable behaviour of constructors internal classes. (Created 2015-03-01) - Reclassify E_STRICT notices (https://wiki.php.net/rfc/reclassify_e_strict)
This RFC proposes to reclassify our few existing E_STRICT notices to different categories. (Created 2015-02-22) - Remove PHP 4 Constructors (https://wiki.php.net/rfc/remove_php4_constructors)
Stop recognizing methods with the same name as the defining class as constructors. (Created 2014-11-17; Voting closed 2015-03-10) - Remove the date.timezone warning (https://wiki.php.net/rfc/date.timezone_warning_removal)
(Created 2015-01-27) - Combined Comparison (Spaceship) Operator (https://wiki.php.net/rfc/combined-comparison-operator)
Proposes a new comparison operator, <=>
(Created 2014-02-12, revived 2015-01-19) - Fix "foreach" behavior (https://wiki.php.net/rfc/php7_foreach)
The RFC defines foreach statement behavior for the cases where is wasn't defined before and implementation provided inconsistent results. (Created 2015-01-29) - Removal of dead SAPIs and extensions (https://wiki.php.net/rfc/removal_of_dead_sapis_and_exts)
Consideration about removing the unsupported SAPIs and extensions with unsupported dependencies. - Jsond (https://wiki.php.net/rfc/jsond)
Whether jsond should replace the current json extension. (Created 2015-01-11) - Preserve Fractional Part in JSON encode (https://wiki.php.net/rfc/json_preserve_fractional_part)
Adds a new option for JSON encode to preserve fractional part on float numbers. - Return Type Declarations (https://wiki.php.net/rfc/return_types)
Adds return types to functions, methods and closures. (Created 2014-03-20) - Fast Parameter Parsing API (https://wiki.php.net/rfc/fast_zpp)
Fast API in addition to zend_parse_parameters(). (Created 2014-05-23) - Unicode Codepoint Escape Syntax (https://wiki.php.net/rfc/unicode_escape)
Adds an escape sequence syntax for Unicode codepoints to string literals. (Created 2014-11-24) - Native TLS (https://wiki.php.net/rfc/native-tls)
Native TLS for internal globals in TS mode - Null Coalesce Operator (https://wiki.php.net/rfc/isset_ternary)
Adds the coalesce operator, ??
- Integer Semantics (https://wiki.php.net/rfc/integer_semantics)
Improves cross-platform consistency in PHP for some operations dealing with integers - ZPP Failure on Overflow (https://wiki.php.net/rfc/zpp_fail_on_overflow)
Make zend_parse_parameters
fail if a float value out of bounds, or NaN, is passed where an integer is expected. (Created 2014-09-22) - Move the phpng branch into master (https://wiki.php.net/rfc/phpng)
Embrace the phpng codebase as the basis for the future major version of PHP. (Created 2014-07-20) - Abstract Syntax Tree (https://wiki.php.net/rfc/abstract_syntax_tree)
Proposes the introduction of an Abstract Syntax Tree (AST) as an intermediary structure in our compilation process. - Uniform Variable Syntax (https://wiki.php.net/rfc/uniform_variable_syntax)
Introduces an internally consistent and complete variable syntax. - 64 bit platform improvements for string length and integer (https://wiki.php.net/rfc/size_t_and_int64_next)
Integer and String modifications for full 64 bit support - Closure::call (https://wiki.php.net/rfc/closure_apply)
Proposes a new method on the Closure
class to allow calling bound to an object without pre-binding - Fix list() behavior inconsistency (https://wiki.php.net/rfc/fix_list_behavior_inconsistency)
Enable or disable string handling in list() operator - Remove alternative PHP tags (https://wiki.php.net/rfc/remove_alternative_php_tags)
Removes ASP and script tags - switch.default.multiple (https://wiki.php.net/rfc/switch.default.multiple)
Disallow multiple defaults in switch statements - Catchable "call to a member function of a non-object" (https://wiki.php.net/rfc/catchable-call-to-member-of-non-object)
Turns this fatal error into E_RECOVERABLE (Created 2014-04-26) - Filtered unserialize() (https://wiki.php.net/rfc/secure_unserialize)
Add option to ignore all or some objects to unserialize() (Created 2013/03/30) - ICU IntlChar class (https://wiki.php.net/rfc/intl.char)
Adds an IntlChar class an intl_char_*() functions to the Intl extension. - Introduce session_start() INI options as array (https://wiki.php.net/rfc/session-lock-ini)
Introduce session_start() options - Remove hex support in numeric strings (https://wiki.php.net/rfc/remove_hex_support_in_numeric_strings)
Removes support for hexadecimal numbers in numeric string conversions. (Created 2014-08-19) - Expectations (https://wiki.php.net/rfc/expectations)
This RFC proposes adding BC zero-cost assertions. (Created 2013-11-01) - Group Use Declarations (https://wiki.php.net/rfc/group_use_declarations)
The RFC adds improvements to current PHP namespace implementation by introducing group use declarations. (Created 2015-01-28) - Exceptions in the engine (https://wiki.php.net/rfc/engine_exceptions_for_php7)
This RFC proposes to allow the use of exceptions in the engine. (Created 2014-09-30) - Generator Return Expressions (https://wiki.php.net/rfc/generator-return-expressions)
This RFC proposes the ability to specify and access return values from Generator functions - Scalar Type Hints v0.5 (https://wiki.php.net/rfc/scalar_type_hints_v5)
This RFC proposes a mixed-mode scalar type system - Continue output buffering (https://wiki.php.net/rfc/continue_ob)
Let the output buffer stack be usable despite an aborted connection - intdiv() (https://wiki.php.net/rfc/intdiv)
This RFC proposes adding an intdiv() function for integer division. (Created 2014-07-15) - Fix handling of custom session handler return values (https://wiki.php.net/rfc/session.user.return-value)
Make false actually mean failure, not success. - Turn gc_collect_cycles into function pointer (https://wiki.php.net/rfc/gc_fn_pointer)
Proposes to turn gc_collect_cycles into function pointer for extensions to hook into. (Created 2012-12-11)
- __debugInfo() magic method (https://wiki.php.net/rfc/debug-info)
Support get_debug_info hook for userspace classes - Exponential operator (https://wiki.php.net/rfc/pow-operator)
Exponential operator - Importing namespaced functions (https://wiki.php.net/rfc/use_function)
Proposes to allow importing namespaced functions through a new `use function` sequence. - Constant Scalar Expressions (with constants) (https://wiki.php.net/rfc/const_scalar_exprs)
This RFC proposes adding support for Constant Scalar Expressions with support for constants being operands. - Remove calls from incompatible context (https://wiki.php.net/rfc/incompat_ctx)
Calls from incompatible context deprecated in 5.6 (will be removed in next version). - Dedicated syntax for variadic functions (https://wiki.php.net/rfc/variadics)
This RFC introduces a dedicated syntax for variadic functions. - Argument unpacking (https://wiki.php.net/rfc/argument_unpacking)
This RFC proposes a syntax for argument unpacking. - Internal operator overloading and GMP improvements (https://wiki.php.net/rfc/operator_overloading_gmp)
Add support for operator overloading in internal classes and improve GMP using it - phpdbg (https://wiki.php.net/rfc/phpdbg)
Distribute phpdbg with PHP, a PHP debugger - Slim POST data (https://wiki.php.net/rfc/slim_post_data)
Use a temp PHP stream for HTTP payload. - Crypt() function salt (https://wiki.php.net/rfc/crypt_function_salt)
This RFC proposes changing crypt() function's salt parameter treatment. - Apparmor change_hat functionality for php-fpm (https://wiki.php.net/rfc/fpm_change_hat)
Proposes to add the possibility to change to a different hat under the apparmor LSM - TLS Peer Verification (https://wiki.php.net/rfc/tls-peer-verification)
Enable peer verification by default for encrypted client streams. - Improved TLS Defaults (https://wiki.php.net/rfc/improved-tls-defaults)
Implement more secure defaults for encrypted stream transfers - Default character encoding (https://wiki.php.net/rfc/default_encoding)
Default character encoding handling in PHP. - 64 bit format codes for pack() and unpack() (https://wiki.php.net/rfc/pack_unpack_64bit_formats)
Adds format codes for converting 64 bit integers to and from binary strings. - Timing attack safe string comparison function (https://wiki.php.net/rfc/timing_attack)
New function to perform time-constant string comparison (Created 2013/12/22)
- Generators (https://wiki.php.net/rfc/generators)
This RFC proposes adding generators as a simple and boilerplate-free way of defining iterators. - support finally keyword (https://wiki.php.net/rfc/finally)
Add try catch finally supporting - Resolve class names to scalars via class keyword (https://wiki.php.net/rfc/class_name_scalars)
A proposal to use ::class after type names to resolve FQ class names as scalar - foreach_variable supporting T_LIST (https://wiki.php.net/rfc/foreachlist)
This extends PHP's language parser to support T_LIST in foreach_variable - Const array/string dereference (https://wiki.php.net/rfc/constdereference)
A little improvement to make things consistent - Allow arbitrary expression arguments to empty() and isset() (https://wiki.php.net/rfc/empty_isset_exprs)
Proposes to allow empty(getArray()) etc. - Integrating Optimizer+ into the PHP distribution (https://wiki.php.net/rfc/optimizerplus)
This RFC proposes to integrate the Zend Optimizer+ opcode cache into the PHP distribution - Adding hash_pbkdf2 function (https://wiki.php.net/rfc/hash_pbkdf2)
This RFC proposes adding a hash_pbkdf2 function to the hash package - Add Simplified Password Hashing (https://wiki.php.net/rfc/password_hash)
This RFC proposes adding 3 new functions to the core to expose a much simplified password hashing API. - Remove preg_replace /e modifier (https://wiki.php.net/rfc/remove_preg_replace_eval_modifier)
This RFC aims at deprecating and subsequently removing the /e modifier (PREG_REPLACE_EVAL) that preg_replace provides. - Add UConverter (https://wiki.php.net/rfc/uconverter)
A proposal to add ICU::UConverter functionality to ext/intl - ext/mysql deprecation (https://wiki.php.net/rfc/mysql_deprecation)
Formally deprecating ext/mysql in PHP. - Cookie Max-Age attribute (https://wiki.php.net/rfc/cookie_max-age)
Cookie Max-Age attribute - Fix cURL file uploading API (https://wiki.php.net/rfc/curl-file-upload)
Fix insecure cURL file uploading API - Add recvmsg() and sendmsg() to ext/sockets (https://wiki.php.net/rfc/sendrecvmsg)
Wrap sendmsg() and recvmsg(), with support for a limited number of message types - PHP CLI changing process title support (https://wiki.php.net/rfc/cli_process_title)
Setting PHP CLI process titles for visibility in 'top' or 'ps' - Allow non-scalar keys in foreach (https://wiki.php.net/rfc/foreach-non-scalar-keys)
This RFC proposes to remove the type restrictions on foreach iteration - Add array_column() function (https://wiki.php.net/rfc/array_column)
This RFC proposes a new array function that returns the values of the specified column from a multi-dimensional array. - Removal of curl-wrappers (https://wiki.php.net/rfc/curl-wrappers-removal-rfc)
This RFC is about removing the curl stream wrappers of the PHP as of 5.5 and to move it on PECL for any eventual improvements. - Strict Sessions (https://wiki.php.net/rfc/strict_sessions)
This RFC proposes an additional security measure for preventing session fixation.
Note: Many RFCs in this list have been mass voted (https://wiki.php.net/todo/php54/vote).
- Instantiating a class and calling methods/accessing properties on same command (https://wiki.php.net/rfc/instance-method-call)
A proposal to add support to instantiating a class and calling its methods or accessing its properties on same command. - Traits (https://wiki.php.net/rfc/horizontalreuse)
Traits is a mechanism for code reuse in single inheritance languages such as PHP. A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies. This RFC proposes a basic version of Traits. - Closures: Object Extension (https://wiki.php.net/rfc/closures/object-extension)
How to extend closures to work with $this and objects. - Short syntax for arrays (https://wiki.php.net/rfc/shortsyntaxforarrays)
This RFC will discuss an language enhancement for simple and easy array definition. - Function array dereferencing (https://wiki.php.net/rfc/functionarraydereferencing)
You know, like foo()['bar'] - Short tags in templates (https://wiki.php.net/rfc/shortags)
This RFC discusses ways to enable short tags template syntax in a way that would be easy for users and compatible with XML users' requirements. - Indirect method call by array variable (https://wiki.php.net/rfc/indirect-method-call-by-array-var)
$arr = array('Class', 'method'); $arr(); - Supporting Binary Notation for Integers (https://wiki.php.net/rfc/binnotation4ints)
This extends PHP's syntax to support binary notation for integers just as it already does for decimal, octal, and hexadecimal representations. - Built-in web server (https://wiki.php.net/rfc/builtinwebserver)
This RFC discusses the web server that is built into PHP itself, for development purpose. - Removal of deprecated features (https://wiki.php.net/rfc/removal-of-deprecated-features)
RFC about removing legacy features in the next version of PHP - Improve parser error messages (https://wiki.php.net/rfc/improved-parser-error-message)
Improve parser error message readability. - Session upload progress (https://wiki.php.net/rfc/session_upload_progress)
Using sessions to provide upload progress feedback to users. - Object oriented session handlers (https://wiki.php.net/rfc/session-oo)
A proposal to allow session_set_save_handler() to accept an object, and expose the original session handler. - Allow Multiple Simultaneous Syslog Connections (https://wiki.php.net/rfc/allow_multiple_simultaneous_syslog_connections)
This RFC propose enhancement to syslog function in order to allow multiple simultaneous connections by using resources. - Stream meta-data (https://wiki.php.net/rfc/streammetadata)
RFC defines handler for setting metadata on stream URL. - Error message formatting for development (https://wiki.php.net/rfc/error-formatting-for-developers)
This RFC discusses error message formatting to aid developers. - Zend Engine Performance Improvements (https://wiki.php.net/rfc/performanceimprovements)
Proposes Zend Engine changes which together make up to 20% performance improvement on synthetic benchmarks and some real-life applications - Run Time Cache (https://wiki.php.net/rfc/runtimecache)
offers an implementation of run-time caching technique which may improve performance of repeatable code - Zend Signal Handling (https://wiki.php.net/rfc/zendsignals)
Improve stability and speed when running under any forking SAPI by adding deferred signal handling to the Zend Engine. - DTrace Probes for PHP (https://wiki.php.net/rfc/dtrace)
Provide DTrace probes for PHP. - New Output API (https://wiki.php.net/rfc/new-output-api)
An RFC about the New Output API - Callable type hint (https://wiki.php.net/rfc/callable)
Callable type hint - LDAP: Add ldap_modify_batch (https://wiki.php.net/rfc/ldap_modify_batch)
This RFC proposes adding a lower-level modification function to the LDAP extension.
- Closures (https://wiki.php.net/rfc/closures)
This RFC proposes Closures and lambda functions for PHP. - Namespace resolution order (https://wiki.php.net/rfc/namespaceresolution)
- RFC on what namespace separator to choose (https://wiki.php.net/rfc/namespaceseparator)
- HEREDOC with double quotes (https://wiki.php.net/rfc/heredoc-with-double-quotes)
This RFC is about allowing double quote syntax similar to single-quotes in NOWDOC as a HEREDOC syntax variant (in PHP 5.3) - LSB parent::/self:: forwarding (https://wiki.php.net/rfc/lsb_parentself_forwarding)
Changes how parent:: and self:: work with LSB by making them forwarding. - call_time_pass_by_reference (https://wiki.php.net/rfc/calltimebyref)
This RFC proposes that call_time_pass_by_reference be switched off by default in PHP 5.3. - New error level E_USER_DEPRECATED (https://wiki.php.net/rfc/e-user-deprecated-warning)
This RFC proposes to introduce a new userspace error level similar to E_DEPRECATED for user level deprecation warnings - Rounding in PHP (https://wiki.php.net/rfc/rounding)
Make round() produce predictable results on all platforms and fix some problems in the process. - Alternative to include/require for autoloaders (https://wiki.php.net/rfc/autoload_include)
This RFC aims to offer an alternative solution to the well known fopen() “hack” used in autoloaders in order to verify the existence of files inside the include path - FPM SAPI (https://wiki.php.net/rfc/fpm)
This RFC discusses FPM SAPI and its inclusion to the core PHP distribution. - FPM INI syntax (https://wiki.php.net/rfc/fpm/ini_syntax)
This RDV discusses the replacement of FPM configuration file from XML to INI. - New INI Files (https://wiki.php.net/rfc/newinis)
A proposal for two new INI files which will replace the current INI's packaged with PHP. One focused on production deployments and the other focused on development deployments. - count_elements handler vs count() (https://wiki.php.net/rfc/array_count_handlers)
Internal change to allow some optimization and add consistency.
https://www.youtube.com/watch?feature=player_embedded&v=5tfMzJPeBPs
- http://php.net/manual/en/migration70.new-features.php
- Migrating from PHP 5.6.x to PHP 7.0.x (http://php.net/manual/en/migration70.new-features.php)
- Переходим на PHP 7 (http://ahrameev.ru/article/migrating-to-php-7.html)
- Топ-разработчик PHP 7: «Критикуйте дальше, а мы будем работать» (http://blogerator.ru/page/php-7-kritikujte-dalshe-a-my-budem-rabotat-stogov)
- PHP 7.1: Обзор новых возможностей (https://habrahabr.ru/post/309858/)
Видать, Hack (http://hacklang.org/) и Node.js (https://nodejs.org/en/) сильно в спину дышат, раз php меняется.
Крутотенечка: Встроенный web-сервер (http://php.net/manual/ru/features.commandline.webserver.php)
PHP >= 5.4
cd ~/public_html
php -S localhost:8000
Python 2:
cd ~/public_html
python -m SimpleHTTPServer 8000
Python 3:
cd ~/public_html
python -m http.server 8000
В php 7.1 (https://dotdev.co/upcoming-changes-in-php-7-1-76ebea53b820) вместо
грёбанного list:
list($a, $b, $c) = array(1, 2, 3);
Появится такая конструкция:
[$a, $b, $c] = [1, 2, 3];
Кстати, в python тоже самое можно делать уот так:
a, b, c = 1, 2, 3
Абсолютли!
php 7.3
Нововведения PHP 7.3 за 30 секунд в виде диффов (https://www.tomasvotruba.cz/blog/2018/08/16/whats-new-in-php-73-in-30-seconds-in-diffs/)
Evolution of PHP — v5.6 to v8.0 (https://medium.com/@meskis/evolution-of-php-v5-6-to-v8-0-c3514ebb7f28)
Эволюция PHP — от 5.6 до 8.0 (Часть 1) (https://habr.com/ru/company/otus/blog/524270/) (на русском)
Эволюция PHP — от 5.6 до 8.0 (Часть 2) (https://habr.com/ru/company/otus/blog/524990/) (на русском)
Собеседование php-developer в 2020 (https://habr.com/ru/post/520472/)
PHP 8 - пробуем новые возможности (https://habr.com/ru/company/mailru/blog/525614/)
PHP 8.0: What's New and Changed (https://php.watch/versions/8.0)
Памятка по фишкам синтаксиса PHP 7.4 и 8 (https://front-line-php.com/cheat-sheet)
SpecialistTV: PHP 8 - что нового (https://www.youtube.com/watch?v=uAOc0uWvV8c)
Что нового в PHP 8.1 - https://habr.com/ru/company/otus/blog/567710/
Релиз языка программирования PHP 8.2 - http://www.opennet.ru/opennews/art.shtml?num=58288