Modern PHP tour: 5 to 8.4
| PHP 5 OOP | |
| PHP 7 speed and types | |
| PHP 8 expression power | |
| Upgrade path to 8.5 |
PHP 5 OOP
PHP 5 turned PHP into an object language: classes, visibility, exceptions. Most legacy code you will meet was born here. Start the timeline at PHP 5 - the hub for the whole story is PHP versions.
class Post { public string $title; public function __construct(string $title) { $this->title = $title; } }
PHP 7 speed and types
PHP 7 doubled execution speed and added scalar type hints plus return types. Sloppy numeric code that relied on silent coercion started failing loudly - which was the point. See PHP 7.
function add(int $a, int $b): int { return $a + $b; }
PHP 8 expression power
PHP 8 made code expression-shaped: match, nullsafe calls, named arguments, attributes. Branches collapsed into values you can assign and return. Tour it via PHP 8 and PHP 8.0.
$label = match ($status) { "new" => "Fresh", "paid" => "Done", default => "Unknown", };
Upgrade path to 8.5
Jump one minor version at a time on a copy of the project: run the test suite, read the migration notes, fix deprecations before they become errors. The linters from the last lesson catch half of this work mechanically.
Next: PHP 8.5 for busy developers
Article author: Arthur Isaev