
рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕, рдЬрд┐рд╕реЗ рд╢реЙрд░реНрдЯ рдХреНрд▓реЛрдЬрд╝рд░ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, PHP рдореЗрдВ рд╕рд╛рдл рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред array_map
рдпрд╛ array_filter
рдЬреИрд╕реЗ array_map
рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд▓реЗрдЦрди рдХрд╛ рдпрд╣ рд░реВрдк рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рдерд╛:
$ids = array_map(function ($post) { return $post->id; }, $posts);
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- PHP 7.4 рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ
- рдХреАрд╡рд░реНрдб
fn
рд╢реБрд░реВ рдХрд░реЗрдВ - рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рднреА рд╣реИред
- рд╕рдорд░реНрдерд┐рдд
return
рдирд╣реАрдВ - рдкреНрд░рдХрд╛рд░- hintihg рддрд░реНрдХреЛрдВ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИ
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд░реВрдврд╝ рддрд░реАрдХрд╛:
$ids = array_map(fn(Post $post): int => $post->id, $posts);
рджреЛ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рддреЗрдВ:
- рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдСрдкрд░реЗрдЯрд░ рдиреЗ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛
- рд▓рд┐рдВрдХ рджреЛрдиреЛрдВ рддрд░реНрдХреЛрдВ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ
рдпрджрд┐ рдЖрдк рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
fn&($x) => $x
рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЙрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдХреНрд▓реЛрдЬрд░ рд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛрддреА рд╣реИред
рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдирд╣реАрдВ рд╣реИ
рдЖрдк рд╕рд╣реА рдкрдврд╝рддреЗ рд╣реИрдВ: рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдореЗрдВ рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗред
рддрд░реНрдХ рдпрд╣ рд╣реИ: рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рд▓рдХреНрд╖реНрдп рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред fn
, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рд░ рджреГрд╖реНрдЯрд┐ рд╕реЗ function
рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИред function
рдФрд░ return
рдХреАрд╡рд░реНрдб рдХреЛ return
рджреЗрдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд░рд╛рдп рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ? рдЙрд╕реА рд╕рдордп, рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде, рдХрдИ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╡рд╛рд▓реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдкрдЧреНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдЙрдореНрдореАрдж рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдПрдХ рдЫреЛрдЯреА рдШреЛрд╖рдгрд╛ рдФрд░ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд░рдПрдлрд╕реА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпреЗ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рд╕рдкрдиреЗ рд╣реИрдВред
рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рд╕реЗ рдЪрд░
рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рджреЛрд╖реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреВрд░реНрд╡ рдХреЛ рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреАрд╡рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
$modifier = 5; array_map(fn($x) => $x * $modifier, $numbers);
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдк рдЗрди рдЪрд░реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдорд╛рди рдореВрд▓реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рд╕рдВрджрд░реНрдн рд╕реЗ рдирд╣реАрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдЕрдВрджрд░ $modifier
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рд╣рд░ рд╕реНрдерд┐рдд $modifier
рдЪрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж $this
, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛:
array_map(fn($x) => $x * $this->modifier, $numbers);
рднрд╡рд┐рд╖реНрдп рдХреЗ рдЕрд╡рд╕рд░
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡ рд╣реИ, рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЫреЛрдЯреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рд▓рд┐рдП:
class Post { private $title; fn getTitle() => $this->title; }
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддреАрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЬрдЧрд╣ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?