Modern PHP tour: 5 to 8.4

Contents
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

Related articles
Development with PHP
PHP course: zero to hero in 50 lessons
What is PHP and where it runs
Install PHP 8.5 and run your first command
Your first PHP script
Comments in PHP
Variables and constants
Types in PHP
Strings in PHP
Numbers in PHP
Operators
if and else
switch and match
Ternary, null coalescing and nullsafe
Loops
Arrays
Associative arrays
Functions
Variable scope
include and require
Namespaces
Composer and autoloading
Everyday string functions
Dates and time
JSON in PHP
Reading and writing files
Errors: read, reproduce, fix
Classes and objects
Constructors and promotion
Inheritance
Interfaces and traits
Enums
Magic methods
Attributes
Exceptions
Strict types
Closures and arrow functions
Generators with yield
Forms: GET and POST
HTTP: headers and status codes
Cookies
Sessions
Login with sessions
JSON REST endpoint
Database with PDO
Uploads and .htaccess
Lint like a pro
Clean functions
Debugging
Modern PHP tour: 5 to 8.4
PHP 8.5 for busy developers
Hero roadmap: the whole course on one page
Install PHP 8.5 on Windows 11
Install PHP 8.5 on Ubuntu
Install PHP 8.5 on Rocky Linux
Install PHP 8.5 on macOS
Install PHP 8.5 on FreeBSD
PHP 8.5 in Docker

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: