“PHP 8.5 landed on Thursday with a long-awaited pipe operator and a new standards-compliant URI parser,” reports the Register, “marking one of the scripting language’s more substantial updates... “ * The pipe operator allows function calls to be chained together, which avoids the extraneous variables and nested statements that might otherwise be involved. Pipes tend to make code more readable than other ways to implement serial operations. Anyone familiar with the Unix/Linux command line or programming languages like R, F#, Clojure, or [Elixir](https://elixirschool.com/e…
“PHP 8.5 landed on Thursday with a long-awaited pipe operator and a new standards-compliant URI parser,” reports the Register, “marking one of the scripting language’s more substantial updates... “ * The pipe operator allows function calls to be chained together, which avoids the extraneous variables and nested statements that might otherwise be involved. Pipes tend to make code more readable than other ways to implement serial operations. Anyone familiar with the Unix/Linux command line or programming languages like R, F#, Clojure, or Elixir may have used the pipe operator. In JavaScript, aka ECMAScript, a pipe operator has been proposed, though there are alternatives like method chaining.
Another significant addition is the URI extension, which allows developers to parse and modify URIs and URLs based on both the RFC 3986 and the WHATWG URL standards. Parsing with URIs and URLs â“ reading them and breaking them down into their different parts â“ is a rather common task for web-oriented applications. Yet prior versions of PHP didn’t include a standards-compliant parser in the standard library. As noted by software developer Tim Düsterhus, the parse_url() function that dates back to PHP 4 doesn’t follow any standard and comes with a warning that it should not be used with untrusted or malformed URLs.
Other noteworthy additions to the language include: Clone With, for updating properties more efficiently; the #[\NoDiscard] attribute, for warning when a return value goes unused; the ability to use static closures and first-class callables in constant expressions; and persistent cURL handles that can be shared across multiple PHP requests.