When writing to a property that has not been declared, PHP will silently create a dynamic property instead. In modern code, this is rarely done intentionally. This RFC proposes to deprecate and later remove the creation of dynamic properties. stdClass and __get/__set are not affected by this change.
PHP natively allows for autovivification (auto-creation of arrays from falsey values). This feature is very useful and used in a lot of PHP projects, especially if the variable is undefined. However, there is a little oddity that allows creating an array from a false and null value.
The proposal is to disallow autovivification from false values
An RFC that proposes to improve the current MySQLi's mysqli_stmt::execute() method to work similar to the PDO's PDOStatement::execute().
The improved mysqli_stmt::execute() will accept an array of parameters that will be bound to the query, and will be more cleaner compared to the current workflow of calling mysqli_stmt::bind_param that requires parameters to be passed by reference.
This RFC proposes to add a new fetch_column method to the mysqli_result class.
With this new fetch_column method, it's possible to fetch a single field from a database query without having to fetch an object or an array of results.
When a method containing static variables is inherited, the inherited method currently uses an independent set of static variables. This RFC proposes to only have one set of static variables per method.
The new custom object serialization mechanism RFC introduced new __serialize() and __unserialize() magic methods in PHP 7.4, with the intent of replacing the broken Serializable interface. This RFC finalizes that work by laying out a plan for the eventual removal of Serializable.
An RFC to add a new return type called noreturn (or never), that indicates the declared function/method does not return any value, and terminates the execution flow by throwing an exception, or terminating the request with a die/exit call.
A secondary vote to select the return type name, between noreturn and never concluded with never being the winner.
fsync() is a function similar to fflush(), however where fflush() only instructs the application to flush its internal buffers out to the OS, fsync() further instructs the OS to flush its buffers to physical storage, ensuring a completed and persisted write before returning any success. PHP provides plain stream wrappers for most common file system functions inherited from C and is indeed one of few major languages to not provide any interface to fsync. This RFC proposes implementing fsync in core.
This proposal defines a syntax for partial function application in PHP. It has been designed to provide a maximum of functionality with a minimum of new syntax while avoiding, to the extent possible, confusing and non-obvious behavior.
Subscribe to PHP.Watch newsletter for monthly updates
You will receive an email on last Wednesday of every month and on major PHP releases with new articles related to PHP, upcoming changes, new features and what's changing in the language. No marketing emails, no selling of your contacts, no click-tracking, and one-click instant unsubscribe from any email you receive.