PHP 8.1 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдирдВрддрд░, PHP 8.1 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рдирд╡реАрди рд╢рд╛рдЦреЗрдд рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛, рддрд╕реЗрдЪ рд╕реБрд╕рдВрдЧрддрддрд╛ рдЦрдВрдбрд┐рдд рдХрд░рдгрд╛рд░реЗ рдЕрдиреЗрдХ рдмрджрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.

PHP 8.1 рдордзреАрд▓ рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░рдгрд╛:

  • рдЧрдгрдиреЗрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рдЖрддрд╛ рдЦрд╛рд▓реАрд▓ рд░рдЪрдирд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛: enum Status { рдХреЗрд╕ рдкреНрд░рд▓рдВрдмрд┐рдд; рдХреЗрд╕ рд╕рдХреНрд░рд┐рдп; рдХреЗрд╕ рд╕рдВрдЧреНрд░рд╣рд┐рдд; } рд╡рд░реНрдЧ рдкреЛрд╕реНрдЯ { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп __рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ (рдЦрд╛рдЬрдЧреА рд╕реНрдерд┐рддреА $status = рд╕реНрдерд┐рддреА::рдкреНрд░рд▓рдВрдмрд┐рдд; ) {} рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп setStatus(Status $status): void { // тАж } } $post->setStatus(Status::Active);
  • рдлрд╛рдпрдмрд░ рдирд╛рд╡рд╛рдЪреНрдпрд╛ рд▓рд╛рдЗрдЯрд╡реЗрдЯ рдереНрд░реЗрдбреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдореА рд╕реНрддрд░рд╛рд╡рд░ рдПрдХреНрдЭрд┐рдХреНрдпреБрд╢рди рдереНрд░реЗрдбреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд. Amphp рдЖрдгрд┐ ReactPHP рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреНрдпреЗ рдлрд╛рдпрдмрд░ рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрд╣реЗ. $рдлрд╛рдпрдмрд░ = рдирд╡реАрди рдлрд╛рдпрдмрд░(рдлрдВрдХреНрд╢рди (): рд╢реВрдиреНрдп { $valueAfterResuming = рдлрд╛рдпрдмрд░::рд╕рд╕реНрдкреЗрдВрдб('рдирд┐рд▓рдВрдмрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░'); // ... }); $valueAfterSuspending = $fiber->start(); $fiber->рд░рд┐рдЭреНрдпреБрдо('рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░');
  • рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдб рдХреЕрд╢реЗ (opcache) рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрдзрд╛рд░рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдХреНрд▓рд╛рд╕ рдЗрдирд╣реЗрд░рд┐рдЯрдиреНрд╕рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдХреЕрд╢реЗ рдХрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ рдЖрд╣реЗ. рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдореБрд│реЗ рдХрд╛рд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди 5-8% рдиреЗ рд╡рд╛рдврд╡рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ. рдЗрддрд░ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдордзреНрдпреЗ JIT рдСрдкрд░реЗрд╢рдирдЪреЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди, ARM64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (AArch64) рд╕рд╛рдареА JIT рд╕рдорд░реНрдердирд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА, рдирд╛рд╡рд╛рдЪреНрдпрд╛ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирдЪреЗ рдкреНрд░рд╡реЗрдЧ, рдЯрд╛рдЗрдорд▓рд┐рдм рдЖрдгрд┐ рдПрдХреНрд╕реНрдЯ/рдбреЗрдЯ рд▓рд╛рдпрдмреНрд░рд░реАрдВрдЪреЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди, рд╡рд╛рдвреАрд╡ рдЕрдиреБрдХреНрд░рдорд┐рдХреАрдХрд░рдг рдЖрдгрд┐ рдбреАрд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рди рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди, get_declared_classes() рдЪреЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди ()), explo. , strtr() рдлрдВрдХреНрд╢рди, strnatcmp(), dechex(). рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, Symfony Demo рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд 23.0% рдЖрдгрд┐ WordPress рд╕рд╛рдареА 3.5% рд╡рд╛рдв рдЖрд╣реЗ.
  • рдЕреЕрд░реЗ "...$var" рдордзреАрд▓ рдЕрдирдкреЕрдХрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░, рдЬреЛ рдирд╡реАрди рдЕреЕрд░реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛рдирд╛ рд╡рд┐рджреНрдпрдорд╛рди рдЕреЕрд░реЗ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреАрд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ (рдкреВрд░реНрд╡реА рдлрдХреНрдд рдбрд┐рдЬрд┐рдЯрд▓ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░реНрд╕ рд╕рдорд░реНрдерд┐рдд рд╣реЛрддреЗ). рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рдЖрддрд╛ рдХреЛрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛: $array1 = [тАЬaтАЭ => 1]; $array2 = ["b" => 2]; $array = [тАЬaтАЭ => 0, тАж$array1, тАж$array2]; var_dump($array); // ["a" => 1, "b" => 2]
  • рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭрд░реНрд╕рдордзреНрдпреЗ "рдирд╡реАрди" рдХреАрд╡рд░реНрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА рдлрдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯ рдкреЕрд░рд╛рдореАрдЯрд░ рдореНрд╣рдгреВрди рдХрд┐рдВрд╡рд╛ рд╡рд┐рддрд░реНрдХ рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреНрдпреЗ. рдХреНрд▓рд╛рд╕ MyController { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп __construct( рдЦрд╛рдЬрдЧреА рд▓реЙрдЧрд░ $logger = рдирд╡реАрди NullLogger(), ) {} }
  • рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╛рдареА рд╡рд░реНрдЧ рдЧреБрдгрдзрд░реНрдо рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ (рдЕрд╢рд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреАрд▓ рдорд╛рд╣рд┐рддреА рдлрдХреНрдд рдПрдХрджрд╛рдЪ рд▓рд┐рд╣рд┐рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рддреНрдпрд╛рдирдВрддрд░ рддреА рдмрджрд▓рд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА). рд╡рд░реНрдЧ рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп __рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╛рдЪрдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ $рд╢реАрд░реНрд╖рдХ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╛рдЪрдиреАрдп рдХреЗрд╡рд│ DateTimeImmutable $date, ) {} } $post = рдирд╡реАрди рдкреЛрд╕реНрдЯ('рд╢реАрд░реНрд╖рдХ', /* тАж */); $post->рд╢реАрд░реНрд╖рдХ = 'рдЗрддрд░'; > рддреНрд░реБрдЯреА: рдХреЗрд╡рд│ рд╡рд╛рдЪрдиреАрдп рдорд╛рд▓рдорддреНрддрд╛ рд╕реБрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА Post::$title
  • рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╡рд╕реНрддреВрдВрд╕рд╛рдареА рдирд╡реАрди рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ - рдЖрддрд╛ рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░реВрди рдЖрдгрд┐ рдХреНрд▓реЛрдЬрд░::fromCallable('myFunc) рдРрд╡рдЬреА рд╡рд┐рддрд░реНрдХ рдореНрд╣рдгреВрди "..." рдореВрд▓реНрдп рдкрд╛рд╕ рдХрд░реВрди рдХреНрд▓реЛрдЬрд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. ')): рдлрдВрдХреНрд╢рди foo (int $a, int $b) { /* тАж */ } $foo = foo(тАж); $foo(a: 1, b: 2);
  • рдЫреЗрджрдирдмрд┐рдВрджреВ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареА рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рджреНрдпрдорд╛рди рдкреНрд░рдХрд╛рд░ рдПрдХрддреНрд░ рдХрд░реВрди рдирд╡реАрди рдкреНрд░рдХрд╛рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ. рдпреБрдирд┐рдпрди рдкреНрд░рдХрд╛рд░рд╛рдВрдкреНрд░рдорд╛рдгреЗ, рдЬреЗ рджреЛрди рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рд╕рдВрдЧреНрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛рдд, рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдкреНрд░рдХрд╛рд░рд╛рдВрдирд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реВрдЪреАрдмрджреНрдз рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рдЖрд╡рд╢реНрдпрдХ рдирд╕рддреЗ, рдкрд░рдВрддреБ рд╕рдВрдЪрд╛рддреАрд▓ рд╕рд░реНрд╡ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ. рдлрдВрдХреНрд╢рди generateSlug(HasTitle&HasId $post) { return strtolower($post->getTitle()) . $post->getId(); }
  • рдПрдХ рдирд╡реАрди рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗ "рдХрдзреАрд╣реА рдирд╛рд╣реА" рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рд╕реНрдЯреЕрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╛рдВрдирд╛ рд╕реВрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХреА рдлрдВрдХреНрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХреНрдЭрд┐рдХреНрдпреБрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░реЗрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдЕрдкрд╡рд╛рдж рдлреЗрдХреВрди рдХрд┐рдВрд╡рд╛ рдПрдХреНрдЭрд┐рдЯ рдлрдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВрди. рдлрдВрдХреНрд╢рди dd(рдорд┐рд╢реНрд░ $рдЗрдирдкреБрдЯ): рдХрдзреАрд╣реА { рдмрд╛рд╣реЗрд░ рдкрдбреВ рдирдХрд╛; }
  • рдПрдХ рдирд╡реАрди рдлрдВрдХреНрд╢рди array_is_list рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ рдХреА рдЕреЕрд░реЗрдордзреАрд▓ рдХреА 0: $list = [тАЬaтАЭ, тАЬbтАЭ, тАЬcтАЭ] рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдпреЗ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдорд╛рдВрдбрд▓реА рдЖрд╣реЗрдд; array_is_list($list); // рдЦрд░реЗ $notAList = [1 => тАЬaтАЭ, 2 => тАЬbтАЭ, 3 => тАЬcтАЭ]; array_is_list($notAList); // false $alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"]; array_is_list($alsoNotAList); // рдЦреЛрдЯреЗ
  • рддреБрдореНрд╣реА рдЖрддрд╛ "рдЕрдВрддрд┐рдо" рдХреАрд╡рд░реНрдб рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдЬреНрдпрд╛рдореБрд│реЗ рдкрд╛рд▓рдХ рд╡рд░реНрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рд╣реЛрдК рдирдпреЗрдд. рд╡рд░реНрдЧ Foo { рдЕрдВрддрд┐рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ const X = "foo"; } рд╡рд░реНрдЧ рдмрд╛рд░ Foo { public const X = "bar" рд╡рд╛рдврд╡рддреЛ; > рдШрд╛рддрдХ рддреНрд░реБрдЯреА: Bar::X рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░рд╛рдВрдХ Foo::X } рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА
  • fsync рдЖрдгрд┐ fdatasync рдлрдВрдХреНрд╢рдиреНрд╕ рдбрд┐рд╕реНрдХ рдХреЕрд╢реЗрдордзреВрди рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд░рджрд╕реНрддреАрдиреЗ рдмрджрд▓ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╣реЗрдд. $file = fopen("sample.txt", "w"); fwrite($file, "рдХрд╛рд╣реА рд╕рд╛рдордЧреНрд░реА"); рдЬрд░ (fsync($file)) { рдкреНрд░рддрд┐рдзреНрд╡рдиреА "рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХрд╡рд░ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдЯрд┐рдХреВрди рд░рд╛рд╣рд┐рд▓реА рдЖрд╣реЗ."; } fclose($file);
  • рдкреВрд░реНрд╡реА рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдЙрдкрд╕рд░реНрдЧ "0" рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдСрдХреНрдЯрд▓ рд╕рдВрдЦреНрдпрд╛рдВрд╕рд╛рдареА "0o" рдЖрдгрд┐ "0O" рдЙрдкрд╕рд░реНрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЖрд╣реЗ. 016 === 0o16; // рдЦрд░реЗ 016 === 0O16; // рдЦрд░реЗ
  • $GLOBALS рдЪрд╛ рд╡рд╛рдкрд░ рдирд┐рд╡рдбрдХрдкрдгреЗ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдорд╛рдЧрд╛рд╕ рд╕реБрд╕рдВрдЧрддрддреЗрдЪреЗ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрдИрд▓, рдкрд░рдВрддреБ рдЕреЕрд░реЗрд╕рд╣ рдСрдкрд░реЗрд╢рдирд▓рд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдЧрддреА рджреЗрдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, $GLOBALS рд╡рд░ рд▓реЗрдЦрди рдЕрдХреНрд╖рдо рдХрд░рдгреЗ рдЖрдгрд┐ $GLOBALS рдкреЙрдЗрдВрдЯрд░рджреНрд╡рд╛рд░реЗ рдЙрддреНрддреАрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреНрдпрд╛ рд╢рдХреНрдпрддреЗрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ. 2000 рдкреЕрдХреЗрдЬреЗрд╕рдЪреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдд рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдЖрд╣реЗ рдХреА рдпрд╛ рдмрджрд▓рд╛рдореБрд│реЗ рддреНрдпрд╛рдкреИрдХреА рдлрдХреНрдд 23 рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреАрд▓. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреНрд░рд╕реНрддрд╛рд╡ рдордВрдЬреВрд░ рдЭрд╛рд▓реНрдпрд╛рд╕, 8.1 рдпрд╛рдкреБрдвреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░ рдирд╛рд╣реА рдЬрд╕реЗ рдХреА: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; рдЕрдирд╕реЗрдЯ($GLOBALS); by_ref($GLOBALS);
  • рдЕрдВрддрд░реНрдЧрдд рдкрджреНрдзрддреАрдВрдиреА рдЖрддрд╛ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░ рдкрд░рдд рдХреЗрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ. PHP 8.1 рдордзреНрдпреЗ, рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рдирд╢реА рдЬреБрд│рдд рдирд╕рд▓реЗрд▓рд╛ рдкреНрд░рдХрд╛рд░ рдкрд░рдд рдХреЗрд▓реНрдпрд╛рдиреЗ рдПрдХ рдЪреЗрддрд╛рд╡рдгреА рдорд┐рд│реЗрд▓, рдкрд░рдВрддреБ PHP 9.0 рдордзреНрдпреЗ рдЪреЗрддрд╛рд╡рдгреА рддреНрд░реБрдЯреАрдиреЗ рдмрджрд▓рд▓реА рдЬрд╛рдИрд▓.
  • рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рд╡рд╕реНрддреВ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рдкрд░реНрдпрдВрдд рдХрд╛рд░реНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдЪрд╛рд▓реВ рд░рд╛рд╣рд┐рд▓реЗ. finfo_* рдЖрдгрд┐ imap_* рдлрдВрдХреНрд╢рдиреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд.
  • рдиреЙрди-рдирд▓рдмрд▓ рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдлрдВрдХреНрд╢рдиреНрд╕рдирд╛ рд╡рд┐рддрд░реНрдХ рдореНрд╣рдгреВрди рд╢реВрдиреНрдп рдореВрд▓реНрдпреЗ рдкрд╛рд╕ рдХрд░рдгреЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. PHP 8.1 рдордзреНрдпреЗ, str_contains(тАЬstringтАЭ, null) рд╕рд╛рд░рдЦреНрдпрд╛ рд░рдЪрдирд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рдЪреЗрддрд╛рд╡рдгреА рдорд┐рд│реЗрд▓ рдЖрдгрд┐ PHP 9 рдордзреНрдпреЗ рддреНрд░реБрдЯреА рдпреЗрдИрд▓.
  • MurmurHash3 рдЖрдгрд┐ xxHash рд╣реЕрд╢рд┐рдВрдЧ рдЕрд▓реНрдЧреЛрд░рд┐рджрдорд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛