Pipe Assignment Operator
DeclinedAdds a |>= operator so $x |>= trim(...) pipes a variable through a function and assigns the result back.
Last activity
Follow the proposals shaping the next version of PHP.
Adds a |>= operator so $x |>= trim(...) pipes a variable through a function and assigns the result back.
Last activity
Function autoloading modeled on class autoloading, with no cost to calls that resolve normally.
Last activity
Adds native generic syntax to classes and functions, with bounds, defaults and variance, erased to each parameter's bound at runtime.
Last activity
Removes the links to PHP's dormant X.com account from PHP.net, ending the project's official presence on X.
Last activity
Adds an opt-in __exists() magic method that says if a magic property exists, separate from whether it's null, used by isset(), empty() and ??.
Last activity
Adds array_path_get() and array_path_exists() to read or check a value deep in a nested array using an array of keys.
Last activity
Adds array_only_keys() and array_except_keys() to keep or drop the listed keys of an array without the array_flip() workaround.
Last activity
Lets a constructor reassign a promoted readonly property exactly once, so you can validate or normalize it without dropping promotion.
Last activity
Adds six str_prefix_* and str_suffix_* functions to ensure, remove or replace a string's prefix or suffix in one call.
Last activity
Adds split() as an alias of explode(), matching the name most other languages use for breaking a string into an array.
Last activity
Deprecates implicit conversion to and from bool for function arguments, return values and typed properties when strict_types is off.
Last activity
Lets backed readonly properties use get and set hooks, with a separate vote for each kind of hook.
Last activity
Lets named functions and methods use => expression; as a shorthand for a body that only returns that expression.
Last activity
Adds str_icontains(), a case-insensitive version of str_contains() that folds ASCII letters only.
Last activity
Lets you declare classes and enums inside other classes, with public, protected or private visibility, referenced as Outer\Inner.
Last activity
Lets interface and abstract methods use never as a parameter type, so implementations can pick any type, and uses it for BackedEnum::from().
Last activity
Lets a class mark an interface with ? in its implements list, so it only implements that interface if it exists.
Last activity
Adds mb_levenshtein() to mbstring so the Levenshtein edit distance is counted in Unicode code points instead of bytes.
Last activity
Adds a let() construct that scopes variables to a block and restores or unsets them when it ends, even if an exception is thrown.
Last activity