рднрдЬрди рей.резреи рдХреЛ рд░рд┐рд▓реАрдЬ, PHP рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХред PHP 3.12 рдХреЛ рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЬ

Vimeo рдХрдореНрдкрдиреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬ рднрдЬрди 3.12, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ PHP рдХреЛрдбрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░ рд╕реВрдХреНрд╖реНрдо рддреНрд░реБрдЯрд┐рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд╕рд╛рдереИ рдХреЗрд╣реА рдкреНрд░рдХрд╛рд░рдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рдЪреНрдпрд╛рдЙрдБрдЫред рдкреНрд░рдгрд╛рд▓реА рд▓реЗрдЧреЗрд╕реА рдХреЛрдб рд░ PHP рдХреЛ рдирдпрд╛рдБ рд╢рд╛рдЦрд╛рд╣рд░реВрдорд╛ рдкреЗрд╢ рдЧрд░рд┐рдПрдХрд╛ рдЖрдзреБрдирд┐рдХ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреЛрдбрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЙрдкрдпреБрдХреНрдд рдЫред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб PHP рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрддред

рднрдЬрдирд▓реЗ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░рдХреЛ рдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдзреЗрд░реИ рдЬрд╕реЛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджрдЫ, рд╕рд╛рдереИ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓реНрддреАрд╣рд░реВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдЪрд░рд╣рд░реВ рдорд┐рд╢реНрд░рдг рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЧрд▓рдд рддрд╛рд░реНрдХрд┐рдХ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ (рдЬрд╕реНрддреИ "рдпрджрд┐ ($a && $a) {}", "if ($a && !$a) {}" рд░ " if ($a) {} elseif ($a) {}"), рд╡рд╕реНрддреБ рдЧреБрдгрд╣рд░реВрдХреЛ рдЕрдкреВрд░реНрдг рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдгред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдореЛрдбрдорд╛ рдЪрд▓реНрдЫред рдпреЛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ, рдЬрд╕рд▓реЗ рдЕрдиреНрддрд┐рдо рд╕реНрдХреНрдпрд╛рди рдкрдЫрд┐ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдорд╛рддреНрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрджрдЫред

рдердк рд░реВрдкрдорд╛, рдЕрдиреБрдорддрд┐ рджрд┐рди рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдврд╛рдБрдЪрд╛рдорд╛ рдПрдиреЛрдЯреЗрд╢рдирд╣рд░реВ рдбрдХрдмреНрд▓рдХ ("/** @var рдкреНрд░рдХрд╛рд░ */") рдЪрд░ рдкреНрд░рдХрд╛рд░рд╣рд░реВ, рдлрд┐рд░реНрддрд╛ рдорд╛рдирд╣рд░реВ, рдкреНрд░рдХрд╛рд░реНрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ, рд╡рд╕реНрддреБ рдЧреБрдгрд╣рд░реВ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдЧрд░реНрдиред рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдЙрдкрдпреЛрдЧ рдврд╛рдБрдЪрд╛ рд░ рджрд╛рдмреА рдмрдпрд╛рди рдкреНрд░рдпреЛрдЧ рдкрдирд┐ рд╕рдорд░реНрдерд┐рдд рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

/** @var string|null*/
$a = foo();

/** @var string $a */
echo strpos ($a, 'hello');

/** @psalm-asssert-if-true B$a */
рдкреНрд░рдХрд╛рд░реНрдп isValidB(A $a): bool {
B && $a->isValid();
}

рднреЗрдЯрд┐рдПрдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдЙрдиреНрдореВрд▓рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрди, Psalter рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдкреНрд▓рдЧрдЗрдирд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдирд┐рд╡рд╛рд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН, рд░ рд╣реЗрд░рдлреЗрд░рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрд╕реНрддреИ рдХрдХреНрд╖рд╛рд╣рд░реВ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕рдмрд╛рдЯ рдЕрд░реНрдХреЛрдорд╛ рд╕рд╛рд░реНрдиреЗ, рдХрдХреНрд╖рд╛рд╣рд░реВ рдмреАрдЪрдХреЛ рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рд╛рд░реНрдиреЗ, рд░ рд╡рд░реНрдЧрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░реНрдиреЗред

рднрдЬрди рдХреЛ рдирдпрд╛рдБ рдЕрдВрдХ рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдпреЛ "--taint-analysis" рд╡рд┐рдХрд▓реНрдкрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЗрдирдкреБрдЯ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, $_GET['name']) рд░ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рдПрд╕реНрдХреЗрдкрд┐рдЩ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рдард╛рдЙрдБрд╣рд░реВрдорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЗрдХреЛ" рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдз рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред $рдирд╛рдо "), рдордзреНрдпрд╡рд░реНрддреА рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ рд░ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВрдХреЛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рдЪреЗрдирд╣рд░реВ рдорд╛рд░реНрдлрдд рд╕рд╣рд┐рддред рд╕рд╣рдпреЛрдЧреА arrays $ _GET, $ _POST рд░ $ _COOKIE рдХреЛ рдкреНрд░рдпреЛрдЧ рд╕рдореНрднрд╛рд╡рд┐рдд рдЦрддрд░рдирд╛рдХ рдбрд╛рдЯрд╛ рдХреЛ рд╕реНрд░реЛрдд рдХреЛ рд░реВрдк рдорд╛ рдорд╛рдирд┐рдиреНрдЫ, рддрд░ рдпреЛ рдкрдирд┐ рд╕рдореНрднрд╡ рдЫред рдкрд░рд┐рднрд╛рд╖рд╛ рдЖрдлреНрдиреИ рд╕реНрд░реЛрддрд╣рд░реВред рдПрд╕реНрдХреЗрдкрд┐рдЩ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ HTML рд╕рд╛рдордЧреНрд░реА рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ, HTTP рд╣реЗрдбрд░рд╣рд░реВ рдердкреНрдиреЗ рд╡рд╛ SQL рдХреНрд╡реЗрд░реАрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреНрдЫрдиреНред

рдЗрдХреЛ, exec, рд╕рдорд╛рд╡реЗрд╢ рд░ рд╣реЗрдбрд░ рдЬрд╕реНрддрд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдПрд╕реНрдХреЗрдкрд┐рдЩрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрджрд╛, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЬрд╕реНрддреИ рдкрд╛рда, SQL, HTML рд░ рд╢реЗрд▓ рдХреЛрдб рд╕рд╣рд┐рддрдХреЛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦрд┐рдиреНрдЫред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдореЛрдбрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреНрд░рд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ (XSS) рд╡рд╛ SQL рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдорд╛ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрдиреЗ рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдердк рд░реВрдкрдорд╛, рдпреЛ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдирдпрд╛рдБ PHP 8.0 рд╢рд╛рдЦрд╛ рдХреЛ рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдгред рд░рд┐рд▓рд┐рдЬ рдиреЛрднреЗрдореНрдмрд░ 26 рдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдирдпрд╛рдБ рд╢рд╛рдЦрд╛рдорд╛ рдирд┐рдореНрди рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ: рдирд╡рд╛рдЪрд╛рд░рд╣рд░реВрдордирдкрд░реНтАНрдпреЛ:

  • рд╕рдХреНрд╖рдо рдЧрд░реНрджреИ JIT рдХрдореНрдкрд╛рдЗрд▓рд░рдЬрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рдЙрддреНрдкрд╛рджрдХрддреНрд╡рдорд╛ рд╕реБрдзрд╛рд░ рд╣реБрдиреНрдЫ ред
  • рд╕рдорд░реНрдерди рд╕рдВрдШ рдкреНрд░рдХрд╛рд░рд╣рд░реВ, рджреБрдИ рд╡рд╛ рдмрдвреА рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рдЩреНрдЧреНрд░рд╣рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджреИ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░рдХрд╛рд░реНрдп foo(Foo|Bar $input): int|float;")ред
  • рд╕рдорд░реНрдерди рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ (рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВ) рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ Docblock рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдХрди рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдЬрд╕реНрддреИ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд░) рдмрд╛рдБрдзреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • рдЫреЛрдЯреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд░ рдЧреБрдгрд╣рд░реВрдХреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред
  • рдирдпрд╛рдБ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ - рд╕реНрдерд┐рд░.
  • рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░ - рдорд┐рд╢реНрд░рд┐рдд, рдЬрд╕рд▓рд╛рдИ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдЫ рдХрд┐ рдЧрд░реНрджреИрди рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
  • ╨Т╤Л╤А╨░╨╢╨╡╨╜╨╕╨╡ рдлреЗрдВрдХ рдЕрдкрд╡рд╛рджрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиред
  • рдХрдордЬреЛрд░ рдирдХреНрд╕рд╛ рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рдирдХреЛ рдХреНрд░рдордорд╛ рдмрд▓рд┐рджрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрдпрд╛рд╕рд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди)ред
  • рдЕрд╡рд╕рд░ рд╡рд╕реНрддреБрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ "::рд╡рд░реНрдЧ" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ (рдЧреЗрдЯ_рдХреНрд▓рд╛рд╕() рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреЗ рдЕрдиреБрд░реВрдк)ред
  • рдЕрд╡рд╕рд░ рдЪрд░рд╣рд░реВрдорд╛ рдмрд╛рдБрдзрд┐рдПрдХрд╛ рдЕрдкрд╡рд╛рджрд╣рд░реВрдХреЛ рдХреНрдпрд╛рдЪ рдмреНрд▓рдХрдорд╛ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВред
  • рдЕрд╡рд╕рд░ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдЕрдиреНрддрд┐рдо рддрддреНрд╡ рдкрдЫрд┐ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдЫреЛрдбреНрджреИред
  • рдирдпрд╛рдБ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╕реНрдЯреНрд░рд┐рдЩрдпреЛрдЧреНрдп рдХреБрдиреИ рдкрдирд┐ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрд░рдХрд╛рд░ рд╡рд╛ рдбрд╛рдЯрд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЬреБрди рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ __toString() рд╡рд┐рдзрд┐ рдЙрдкрд▓рдмреНрдз рдЫ)ред
  • рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ str_contains(), рд╕рдмрд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ strpos рдХреЛ рд╕рд░рд▓реАрдХреГрдд рдПрдирд╛рд▓рдЧ, рд╕рд╛рдереИ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕реБрд░реБ рд░ рдЕрдиреНрддреНрдпрдорд╛ рдорд┐рд▓рд╛рдирд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ str_starts_with() рд░ str_ends_with()ред
  • рдердкрд┐рдПрдХреЛ рдкреНрд░рдХрд╛рд░реНрдп fdiv(), рдЬрд╕рд▓реЗ рд╢реВрдиреНрдпрд▓реЗ рднрд╛рдЧ рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐ рдирдЫреЛрдбрд┐рдХрди рд╡рд┐рднрд╛рдЬрди рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред
  • рдкрд░рд┐рд╡рд░реНрддрди рднрдпреЛ рд╕реНрдЯреНрд░рд┐рдЩ рдЬреЛрдбреНрдиреЗ рддрд░реНрдХред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'echo "sum:"ред $a + $b' рд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ 'echo ("sum: " . $a) + $b' рдХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ PHP 8 рдорд╛ 'echo "sum: " рдХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░рд┐рдиреЗрдЫред ($a + $b)'ред
  • рдХрд╕рд┐рдпреЛ рдЕрдВрдХрдЧрдгрд┐рдд рд░ рдмрд┐рдЯ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "[] % [42]" рд░ "$object + 4" рддреНрд░реБрдЯрд┐рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╣реБрдиреЗрдЫред
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрдПрдХреЛ рдЫ рдПрдХ рд╕реНрдерд┐рд░ рдХреНрд░рдордмрджреНрдз рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрд╕рдорд╛ рд╕рдорд╛рди рдорд╛рдирд╣рд░реВрдХреЛ рдХреНрд░рдо рд╡рд┐рднрд┐рдиреНрди рд░рдирд╣рд░реВрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░рд┐рдиреНрдЫред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди