Vimeo рдХрдореНрдкрдиреА
рднрдЬрдирд▓реЗ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░рдХреЛ рдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдзреЗрд░реИ рдЬрд╕реЛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджрдЫ, рд╕рд╛рдереИ рд╡рд┐рднрд┐рдиреНрди
рдердк рд░реВрдкрдорд╛, рдЕрдиреБрдорддрд┐ рджрд┐рди рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ
/** @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 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдкреНрд▓рдЧрдЗрдирд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рд░
рднрдЬрди рдХреЛ рдирдпрд╛рдБ рдЕрдВрдХ рдорд╛
рдЗрдХреЛ, exec, рд╕рдорд╛рд╡реЗрд╢ рд░ рд╣реЗрдбрд░ рдЬрд╕реНрддрд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдПрд╕реНрдХреЗрдкрд┐рдЩрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрджрд╛, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЬрд╕реНрддреИ рдкрд╛рда, SQL, HTML рд░ рд╢реЗрд▓ рдХреЛрдб рд╕рд╣рд┐рддрдХреЛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦрд┐рдиреНрдЫред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдореЛрдбрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреНрд░рд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ (XSS) рд╡рд╛ SQL рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдорд╛ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрдиреЗ рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдердк рд░реВрдкрдорд╛, рдпреЛ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ
-
рд╕рдХреНрд╖рдо рдЧрд░реНрджреИ 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