рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдорддрджрд╛рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдкрдХреНрд╖ рдореЗрдВ 51 рд╡реЛрдЯ, 8 рдХреЗ рдЦрд┐рд▓рд╛рдл)ред
рдпрд╣ рдерд╛:
$result = array_filter($paths, function ($v) use ($names) { return in_array($v, $names); });
рдпрд╣ рдмрди рдЧрдпрд╛:
$result = array_filter($paths, fn($v) => in_array($v, $names));
рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдг
рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:
рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕
fn(_) => _
рдПрдХ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ, рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдкреНрд░рдХрд╛рд░, рдЪреВрдХ рдЖрджрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
fn(array $x) => $x; fn(): int => $x; fn($x = 42) => $x; fn(&$x) => $x; fn&($x) => $x; fn($x, ...$rest) => $rest;
рдЪреЗрддрд╛рд╡рдиреА! рдПрдХ рдирдпрд╛ рдХреАрд╡рд░реНрдб fn
, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд┐рдЫрдбрд╝реА рд╣реБрдИ рдЕрд╕рдВрдЧрддрд┐!
рдЕрдиреНрдп (рдЦрд╛рд░рд┐рдЬ) рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдЪрд╛рд░
рдорд╛рдирд╛ рд╡рд┐рдХрд▓реНрдк:
рдФрд░ рдХреБрдЫ рдЕрдиреНрдп
рдЪрд░ рдХреЛ рдмрдВрдж рдХрд░рдирд╛
рдорд╣рддреНрд╡рдкреВрд░реНрдг! Php рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд▓реЙрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реЗ рдореВрд▓ рдкреИрдорд╛рдиреЗ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдмрд░рд╛рдмрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ:
$y = 1; $fn1 = fn($x) => $x + $y; $fn2 = function ($x) use ($y) { return $x + $y; };
$ рдпрд╣ рдЪрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪрд░ рдХреА рддрд░рд╣ рд╣реА рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реНрдерд┐рд░ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
class Test { public function method() { $fn = fn() => var_dump($this); $fn();
рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдореВрд▓реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЛ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред рдпрд╛рдиреА рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЪрд░ рдмрджрд▓рдиреЗ рд╕реЗ рдкреИрд░реЗрдВрдЯ рд╕реНрдХреЛрдк рдореЗрдВ рд╡реИрд░рд┐рдПрдмрд▓ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрджреНрдпрдкрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрддрдирд╛ рдХреЙрдореНрдкреИрдХреНрдЯ рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдпрд╣ рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реЛрдЧрд╛:
$result = Collection::from([1, 2]) ->map(fn($v) => $v * 2) ->reduce(fn($tmp, $v) => $tmp + $v, 0); echo $result;
рдХреБрдЫ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, php рдореЗрдВ рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдХ рдЪрд░рд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдХрдИ рдХрдердиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ ;
, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ (RFC рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдПрдХ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЦрдВрдбрди рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╕реНрддрд╛ рдЙрддреНрдкрд╛рджрди рдкреЙрдбрдХрд╛рд╕реНрдЯ рдореЗрдВ рдкреАрдПрдЪрдкреА рдореЗрдВ рддреАрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ рд╕рджрд╕реНрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
RFC рд▓рд┐рдВрдХ