рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ рдЪрдпрдиред рд╕рдорд╕реНрдпрд╛ рдореЗрдВ: 4 рдиреЗ PHP 8 рдХреЗ рд▓рд┐рдП RFC рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ (рдПрдиреЛрдЯреЗрд╢рди / рдбреЗрдХреЛрд░реЗрдЯрд░), рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рднрд╛рдЧ, рдСрдирд▓рд╛рдЗрди рд╕рдореНрдореЗрд▓рди рдФрд░ рдмреИрдардХреЗрдВ, рд╡реАрдбрд┐рдпреЛ, рдкреЙрдбрдХрд╛рд╕реНрдЯ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдХрд╛ рдордЬрд╝рд╛ рд▓реЗрдВ!
рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐
PHP Internals
[RFC] Attributes v2 тАФ PHP 8 ( / ) << >>
.
<<ExampleAttribute>>
class Foo
{
<<ExampleAttribute>>
public const FOO = 'foo';
<<ExampleAttribute>>
public $x;
<<ExampleAttribute>>
public function foo(<<ExampleAttribute>> $bar) { }
}
$object = new <<ExampleAttribute>> class () { };
<<ExampleAttribute>>
function f1() { }
$f2 = <<ExampleAttribute>> function () { };
$f3 = <<ExampleAttribute>> fn () => 1;
. Benjamin Eberlei <<Deprecated>>
, trigger_error
:
<<Deprecated>>
function test() {}
<<Deprecated("use test3() instead")>>
function test2() {}
[RFC] Allow trailing comma in parameter list тАФ PHP 8 .
class Uri {
private function __construct(
?string $scheme,
?string $user,
?string $pass,
?string $host,
?int $port,
string $path,
?string $query,
?string $fragment, // <-- !
) {
...
}
}
[RFC] Change Default PDO Error Mode тАФ PDO PDO::ERRMODE_EXCEPTION
SQL .
[RFC] Stricter type checks for arithmetic/bitwise operators тАФ , PHP 8 TypeError
, , .
[RFC] Type casting in array destructuring expressions тАФ .- [RFC] Always available JSON extension тАФ JSON .
- [RFC] Match expression тАФ
match
, :
match ($x) {
0 => {
foo();
bar();
baz();
},
}
, feature-freeze PHP 8 , RFC .

Symfony
Laravel
Yii
Async PHP

/
!
тАФ , , .
.
Telegram- PHP Digest.
тЖР : PHP- тДЦ 178