Back to Publication
PHP
By Riazul Islam•
Summary: A comprehensive look at the exciting new features and improvements coming in PHP 8.5, from pipe operator to improved type system.
## Introduction
PHP continues to evolve with each release, and **PHP 8.5** is set to bring exciting improvements that will enhance developer productivity and code quality. Let's explore the key features and changes coming in this release.
---
## 1. The Pipe Operator (`|>`)
One of the most anticipated additions, the pipe operator allows chaining function calls in a readable, left-to-right manner.
```php
$result = "Hello, World!"
|> strtolower(...)
|> trim(...)
|> str_replace("world", "php", ...);
// Result: "hello, php!"
```
This eliminates deeply nested function calls and makes code flow more intuitive.
---
## 2. Asymmetric Visibility for Properties
PHP 8.5 enhances property visibility controls, allowing different access levels for reading and writing.
```php
class User {
public private(set) string $name;
public protected(set) int $age;
public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}
```
---
## 3. Improved Enums
Enums receive additional functionality including the ability to implement more interfaces and improved pattern matching.
```php
enum Status: string {
case Active = 'active';
case Inactive = 'inactive';
case Pending = 'pending';
public function label(): string {
return match($this) {
self::Active => '✅ Active',
self::Inactive => '❌ Inactive',
self::Pending => '⏳ Pending',
};
}
}
```
---
## 4. `array_first()` and `array_last()`
New built-in functions that eliminate common boilerplate for accessing the first and last elements of an array.
```php
$fruits = ['apple', 'banana', 'cherry'];
$first = array_first($fruits); // 'apple'
$last = array_last($fruits); // 'cherry'
```
---
## 5. Locale-Independent Float to String
Float-to-string conversions are now always locale-independent, preventing bugs in internationalized applications.
---
## 6. Improved `readonly` Classes
Readonly classes get improvements that make them more practical for real-world use, including better inheritance support.
---
## 7. Performance Improvements
PHP 8.5 includes significant JIT compiler improvements:
- **15-20% faster** for CPU-intensive operations
- Reduced memory usage for long-running processes
- Better opcache utilization
---
## 8. Deprecations and Cleanup
Several legacy features are deprecated:
- Implicit nullable parameter types
- Certain legacy string functions
- Various outdated ini settings
---
## Migration Tips
1. **Test thoroughly** - Run your test suite with PHP 8.5 RC
2. **Check deprecations** - Address any deprecation warnings
3. **Update dependencies** - Ensure all packages support PHP 8.5
4. **Leverage new features** - Gradually adopt pipe operator and improved types
---
## Conclusion
PHP 8.5 represents another solid step forward for the language. The pipe operator, improved visibility controls, and performance gains make it a worthwhile upgrade for any PHP project. Start testing your applications today to ensure a smooth transition!
