Brent Roose
Posted on May 15, 2020
PHP 8 brings lots of new features, in this list we'll look at the most outstanding ones. If you want a full list and background information, you can read about all things new in PHP 8.
use \Support\Attributes\ListensTo;
class ProductSubscriber
{
<<ListensTo(ProductCreated::class)>>
public function onProductCreated(ProductCreated $event) { /* … */ }
<<ListensTo(ProductDeleted::class)>>
public function onProductDeleted(ProductDeleted $event) { /* … */ }
}
Attributes — aka annotations — you can about them in depth in this post.
public function foo(Foo|Bar $input): int|float;
public function bar(mixed $input): mixed;
Union types allows for type hinting several types. There's also a new mixed
type which represents several types at once.
interface Foo
{
public function bar(): static;
}
The static
return type is built-in.
[JIT]
opcache.jit=5
The just-in-time compiler for PHP.
$triggerError = fn() => throw new MyError();
$foo = $bar['offset'] ?? throw new OffsetDoesNotExist('offset');
throw
can be used in expressions.
try {
// Something goes wrong
} catch (MySpecialException) {
Log::error("Something went wrong");
}
Non-capturing catches: no need to specify an exception variable if you don't need it.
public function(
string $parameterA,
int $parameterB,
Foo $objectfoo,
) {
// …
}
Trailing commas are allowed in parameter lists
str_contains('string with lots of words', 'words');
str_starts_with('haystack', 'hay');
str_ends_with('haystack', 'stack');
New string functions.
Let's not fool ourselves: 8 code blocks isn't enough to summarise all great new things in PHP 8. If you want a full list, you can find it on my blog.
What feature are you looking forward to the most? Let me know on Twitter or via email.
Posted on May 15, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 24, 2024
October 20, 2024