Request for Comments
This page gives an overview of the current RFCs for PHP.
To create a new RFC, see How To Create an RFC.
Note: An RFC is effectively “owned” by the person that created it. If you want to make changes, get permission from the creator. If no agreement can be found, the only course of action is to create a competing RFC. In this case, the old RFC page should be modified to become an intermediate page that points to all the competing RFC's.
A new page in this RFC namespace will automatically be loaded with an RFC template. Customize as needed.
In voting phase
This section is for RFCs that are currently being voted on.
- End PEAR Project Endorsement (Created 2026-08-27)
- IntlRelativeDateTimeFormatter (Created 2026-08-07, Discussion started 2026-08-07)
- Throw ValueError for invalid characters in number base functions (Created 2026-08-11)
Under Discussion
This section is for RFCs that have been announced on the PHP “internals” mail list.
- PDO binary parameter support (Created 2026-09-29, Discussion started 2026-10-16)
- Case-insensitive extension names in ini_get_all() (Created 2026-10-17, Discussion started 2026-10-17)
- Opt-in JSON Comments and Trailing Commas (Created 2026-10-13, Discussion started 2026-10-13)
- CSV Extension (ext/csv) (Created 2026-10-08, Discussion started 2026-10-09)
- Single binary for CLI and FPM (Created 2026-10-06, Discussion started 2026-10-06)
- Add Filter\Filter and Filter\Flag Enums (2026-10-03)
- IO Hooks and Operations (Created 2026-09-29, Discussion started 2026-09-30)
- Polling API Additions (Created 2026-09-29, Discussion started 2026-09-30)
- Short Array Variable Shorthand (Created 2026-09-30, Discussion started 2026-09-30)
- Io\Terminal (Created 2026-09-27, Discussion started 2026-09-27)
- Time\Instant and Time\Clock (Created 2026-09-21)
- PREG_THROW_ON_ERROR (Created 2026-07-28, Discussion started 2026-07-28)
- Function Autoloading (mark 5) (created 2026-06-16, discussion started 2026-06-16, voting started 2026-07-30)
- Concurrency Support in the PHP Engine (Created 2026-07-23)
- Left-to-right assignment operator (Created 2026-07-19)
- Add bundled user_cache extension (Created 2026-07-19, Discussion started 2026-07-19)
- Native Markup Expressions (Created 2026-07-15)
- Strict Namespace Resolution (Created 2026-07-14)
- Literal Scalar Types (created 2026-06-15, discussion started 2026-06-15)
- Grapheme Mask (Created 2026-06-25)
- Primary Constructors (Created 2026-06-17, Discussion started 2026-06-29)
- Case sensitive PHP (created 2026-06-01, discussion started 2026-06-17)
- Serializable closures, by reference to the code that declares them (created 2026-06-10, discussion started 2026-06-10)
- Working Groups (Created 2025-02-17, discussion started 2026-05-26)
- Friends (created 2026-05-04, discussion started 2026-05-10)
- Social Media and Marketing Communications Policy (created 2026-04-30, discussion started 2026-05-18)
- Scope Functions (created 2026-04-26, discussion started 2026-05-06)
- Add MariaDB specific features to mysqlnd and mysqli (Created 2026-04-06)
- php-community: A faster-moving, community-driven PHP (Created 2026-03-14)
- Prevent instantiation and cloning of __PHP_Incomplete_Class (Created 2026-03-03)
- Query Parameter Manipulation Support (Created 2026-02-13)
- Readonly Variables (Created 2026-02-22)
- SIMD-Accelerated CRC via crc-fast for ext/hash (Created 2026-02-17)
- Trailing Boolean Operators (Created 2026-02-02)
- Pipe to return (Created 2026-01-31)
- Deprecate Fuzzy Type Casts and Allow Stringable in Strict Mode (Created 2026-01-23)
- Partial Function Application for instance of non-static methods ("$this") (Created 2026-01-16)
- Type Aliases (Created 2024-09-07)
- Pattern matching ''is'' keyword (Created 2020-11-11)
- Namespace-Scoped Visibility for Methods and Properties (Created 2025-11-07)
- Context Managers (Created 2025-10-20)
- #[\NoSerialize] attribute (Created 2025-10-06)
- TidyException type for the tidy extension (Created 2025-10-26)
- Nullable and Non-Nullable Cast Operators (Created 2025-10-24)
- PHP RFC: Object-oriented curl API v2 (Created 2025-06-24)
- Add RFC 4648 compliant data encoding API (Created 2025.06.19)
- Drop 32-bit Builds (Created 2025-06-18)
- JSON Schema validation support (Created 2025-06-15)
- Add function to return the number of available processors
(Created 2025-05-24) - Transform void into an alias for null (Created 2025-06-02)
- Minor version compatibility (Created 2025-04-13, Discussion started 2025-04-13)
- Update the default value for ''zend.exception_ignore_args'' (Created 2025-04-02, Discussion started 2025-04-09)
- Modern Compression (zstd, brotli) (Created 2025-02-18)
- Data Classes (Created 2024-11-23)
- Add get_declared_enums() function (Created 2024-08-20)
- Warn on conversions from resource to string (Created 2024-09-24)
- Deprecate json_encode() on classes marked as non-serializable (Created 2024-09-03)
- Add Directive to Make All Namespaced Function Calls Global (Created 2024-08-04)
- Allow int type argument to BCMath function (Created 2024-07-08)
- Improve language coherence for the behaviour of offsets and containers (Created 2024-07-04)
- Deprecate FFI non-static methods (Created 2024-06-21)
- Static Constructor (Created 2024-06-18)
- Add values() Method to BackedEnum (Created 2025-11-09)
In Draft
This section is for early drafts of RFCs that have NOT been announced on the PHP “internals” mail list.
- Add array_str_contains() function to standard library - Sepehr Mahmoudi
- Deprecations for PHP 8.7 (Created 2026-08-12)
- Array Search Range (Created 2026-08-12)
- Native Immutable Collections — "vec", "set" and "tuple" (Created 2026-08-04)
- Direction Aware Property Resolution (Created 2026-07-14)
- Extension Methods (created 2026-07-11)
- Scalar Extension Methods (created 2026-07-11)
- Extension Method Visibility (created 2026-07-11)
- Extension Method Autoloading (created 2026-07-11)
- Catchable MemoryError for predictably oversized allocations (created 2026-07-10)
- Add ReflectionAttribute::getCurrent() (created 2026-04-19, discussion started 2026-05-04)