рд╡реАрдорд┐рдпреЛ рдХрдВрдкрдиреА
рднрдЬрди рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
/** @var рд╕реНрдЯреНрд░рд┐рдВрдЧ|рд╢реВрдиреНрдп */
$a = foo();
/** @var рд╕реНрдЯреНрд░рд┐рдВрдЧ $a */
рдЗрдХреЛ рд╕реНрдЯреНрд░реЙрдкреНрд╕ ($ рдП, 'рд╣реИрд▓реЛ');
/** @рднрдЬрди-рдЬреЛрд░-рдЕрдЧрд░-рд╕рдЪреНрдЪрд╛ рдмреА $рдП */
рдлрд╝рдВрдХреНрд╢рди isValidB(A $a) : рдмреВрд▓ {
рд░рд┐рдЯрд░реНрди $a рдЗрдВрд╕реНрдЯреЗрдВрд╕рдСрдлрд╝ B && $a->isValid();
}
рдкрд╛рдИ рдЧрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЙрдиреНрдореВрд▓рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Psalter рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ рдФрд░
рднрдЬрди рдХреЗ рдирдП рдЕрдВрдХ рдореЗрдВ
рдЗрдХреЛ, рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯрд┐рд╡, рдЗрдирдХреНрд▓реВрдб рдФрд░ рд╣реЗрдбрд░ рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рднрд╛рдЧрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЬреИрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ, рдПрд╕рдХреНрдпреВрдПрд▓, рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рд╢реИрд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдореЛрдб рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ (XSS) рдпрд╛ SQL рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдиреЛрдЯ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
-
рдкрд╛рд╡рд░ рдЕрдк рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред - ╨Я╨╛╨┤╨┤╨╡╤А╨╢╨║╨░
рд╕рдВрдШ рдХреЗ рдкреНрд░рдХрд╛рд░ , рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, тАЬрд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝рдВрдХреНрд╢рди foo(Foo|Bar $input): int|float;тАЭ)ред - ╨Я╨╛╨┤╨┤╨╡╤А╨╢╨║╨░
рдЧреБрдг (рдПрдиреЛрдЯреЗрд╢рди) рдЬреЛ рдЖрдкрдХреЛ рдбреЙрдХрдмреНрд▓реЙрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА) рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред -
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреНрд▓рд╛рд╕ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ, рдЖрдкрдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдЧреБрдгреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред - рдирдпрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ -
рд╕реНрдерд┐рд░ . - рдирдпрд╛ рдкреНрд░рдХрд╛рд░ -
рдорд┐рд╢реНрд░рд┐рдд , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред - рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдлреЗрдВрдХрдирд╛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП. -
рдХрдордЬреЛрд░ рдирдХреНрд╢рд╛ рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рджреМрд░рд╛рди рддреНрдпрд╛рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреИрд╢ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред -
рдЕрд╡рд╕рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "::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