PHP 8 Crash Course
PHP 8 is now officially available. As part of this new release, not only will you benefit from performance improvements - thanks to the new JIT compiler - but you'll also enjoy useful new operators and types, attributes, match expressions, and so much more.
If you're intrigued, hop in and we'll review everything you need to know.
Progress
Series Info
- Episodes
- 9
- Run Time
- 39m
- Difficulty
- Intermediate
- Last Updated
- Dec 3, 2020
- Version
- PHP 8
Series Episodes
- Episodes (9)
How to Install PHP 8
Before we can play around, of course we must first download PHP 8. At the time of this writing, PHP 8 is not yet officially out. As such, we'll tap a custom Homebrew formula to make the installation process as painless as possible. Alternatively, you might consider using Docker or Vagrant to create an isolated environment for testing PHP 8.The Nullsafe Operator
First up on the agenda is the new Nullsafe operator. This operator - represented as a question mark - allows you to call a method on the result of any expression if it does not evaluate tonull. It sounds confusing, but it really isn't. Let's have a look.Match Expressions
Switch statements in PHP are useful, yet clunky. Think of the new match expression in PHP 8 as an improved switch. It's far more terse and flexible than its counterpart.Constructor Property Promotion
Next up is constructor property promotion, which allows you to remove much of the tedious class initialization boilerplate code that you likely write for every any that accepts a dependency.$object::class
This next one is a small, but useful addition to PHP 8 that received unanimous support during the voting stage. You now have the ability to use::classdirectly on an object. The result will be functionally identical to the result ofget_class(). In PHP 7 and below, this functionality was limited to the class, itself.Named Parameters
Next up, we have named parameters. This new PHP 8 feature allows you to pass function arguments according to, not their order, but the parameter name, itself. Let's discuss the pros and cons of adopting named parameters/arguments in your own projects.New String Helpers
It took a global pandemic for PHP to finally add astr_containshelper function, but it's finally here (along with a few others). In this episode, we'll reviewstr_contains(),str_starts_with(), andstr_ends_with().Weak Maps
Weak maps are effectively key value stores that allow for garbage collection. You won't reach for these often, but they're nonetheless an important tool to have in your belt.Union and Pseudo Types
Next up, we'll discuss PHP 8's support for union types, as well as a new catch-allmixedpseudo-type. We can now - without resorting to docblocks - specify that a method parameter may accept multiple types.
