PHP 8 рдХрд╛ рдмреАрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ

рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд PHP 8 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдирдИ рд╢рд╛рдЦрд╛ рдХреА рдкрд╣рд▓реА рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ред рд░рд┐рд▓реАрдЬрд╝ 26 рдирд╡рдВрдмрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдЙрд╕реА рд╕рдордп, PHP 7.4.9, 7.3.21 рдФрд░ рдХреА рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝
7.2.33, рдЬрд┐рд╕рдиреЗ рд╕рдВрдЪрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред

рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдкреАрдПрдЪрдкреА 8:

  • рдкрд╛рд╡рд░ рдЕрдк рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред
  • ╨Я╨╛╨┤╨┤╨╡╤А╨╢╨║╨░ рдирд╛рдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ, рдЖрдкрдХреЛ рдирд╛рдореЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдорд╛рди рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рдЖрдк рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "array_fill(start_index: 0, рд╕рдВрдЦреНрдпрд╛: 100, рдорд╛рди: 50)"ред
  • рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЕрдиреБрдорддрд┐ "?" рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ "рд╢реВрдиреНрдп" рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдВрдЪ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • ╨Я╨╛╨┤╨┤╨╡╤А╨╢╨║╨░ рд╕рдВрдШ рдХреЗ рдкреНрд░рдХрд╛рд░, рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, тАЬрд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝рдВрдХреНрд╢рди foo(Foo|Bar $input): int|float;тАЭ)ред
  • ╨Я╨╛╨┤╨┤╨╡╤А╨╢╨║╨░ рдЧреБрдг (рдПрдиреЛрдЯреЗрд╢рди) рдЬреЛ рдЖрдкрдХреЛ рдбреЙрдХрдмреНрд▓реЙрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА) рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдореИрдЪ, рдЬреЛ, рд╕реНрд╡рд┐рдЪ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдорд╛рди рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдВрдпреЛрдЬрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╕рдЦреНрдд рдкреНрд░рдХрд╛рд░ рдХреА рддреБрд▓рдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ "рдмреНрд░реЗрдХ" рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

    $рдкрд░рд┐рдгрд╛рдо = рдорд┐рд▓рд╛рди($рдЗрдирдкреБрдЯ) {
    0 => "рд╣реИрд▓реЛ",
    '1', '2', '3' => "рджреБрдирд┐рдпрд╛",
    };

  • рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреНрд▓рд╛рд╕ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ, рдЖрдкрдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдЧреБрдгреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред
  • рдирдпрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ - рд╕реНрдерд┐рд░.
  • рдирдпрд╛ рдкреНрд░рдХрд╛рд░ - рдорд┐рд╢реНрд░рд┐рдд, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
  • рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдлреЗрдВрдХрдирд╛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП.
  • рдХрдордЬреЛрд░ рдирдХреНрд╢рд╛ рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рджреМрд░рд╛рди рддреНрдпрд╛рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреИрд╢ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред
  • рдЕрд╡рд╕рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "::class" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (get_class() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди)ред
  • рдЕрд╡рд╕рд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЬреЛ рдЪрд░ рд╕реЗ рдмрдВрдзреА рдирд╣реАрдВ рд╣реИрдВред
  • рдЕрд╡рд╕рд░ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдЫреЛрдбрд╝рдирд╛ред
  • рдирдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрд╛рд░рдпреБрдХреНрдд рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдбреЗрдЯрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП __toString() рд╡рд┐рдзрд┐ рдЙрдкрд▓рдмреНрдз рд╣реИ)ред
  • рдирдпреА рд╡рд┐рд╢реЗрд╖рддрд╛ str_contains (), рдПрдХ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдШрдЯрдирд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЙрдкреНрд╕ рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдПрдирд╛рд▓реЙрдЧ, рд╕рд╛рде рд╣реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рдорд┐рд▓рд╛рди рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди str_starts_with() рдФрд░ str_ends_with()ред
  • рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдПрдлрдбреАрдЖрдИрд╡реА (), рдЬреЛ рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрди рд╕рдВрдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред
  • рдмрджрд▓рд╛ рд╣реБрдЖ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рддрд░реНрдХред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдЧреВрдВрдЬ "рдпреЛрдЧ:"ред $a + $b' рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдкрд╣рд▓реЗ 'echo ("sum: " . $a) + $b' рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рдереА, рдФрд░ PHP 8 рдореЗрдВ рдЗрд╕реЗ 'echo "sum: " рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред ($a + $b)'.
  • рдХрдбрд╝реА рдХрд░ рджреА рдЧрдИ рдЕрдВрдХрдЧрдгрд┐рдд рдФрд░ рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "[] % [42]" рдФрд░ "$рдСрдмреНрдЬреЗрдХреНрдЯ + 4" рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдПрдХ рд╕реНрдерд┐рд░ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд░рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдорд╛рдиреЛрдВ рдХрд╛ рдХреНрд░рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред
  • рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ