рд╕рдВрд╕реНрдХрд░рдг 5.3 рд╕реЗ рд╢реБрд░реВ, PHP рдЖрдкрдХреЛ рдХреНрд▓реЛрдЬрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
http://www.php.net/manual/en/functions.anonymous.php#example-163 (рдЙрджрд╛рд╣рд░рдг 3) рдореЗрдВ рдПрдХ рджреБрд░реНрд▓рдн рдкрд░рд┐рд╖реНрдХрд╛рд░ рдФрд░ рджреВрд░рдЧрд╛рдореАрддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрдЯ рдХреЗ рддрд╣рдд рдЙрджрд╛рд╣рд░рдг array_map () рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рддрд░реАрдХрд╛ рдХреИрд╢рд┐рдВрдЧ рд╣реИ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХреЗ рдЖрд╡реЗрджрди рдХреА рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
<?php Class Cache { static function set( $key, $value) {
рд╣рдо рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрджрд┐ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ - рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рддрд░реНрдХ
рд▓рдЧрднрдЧ рд╣рд░ рдмрд╛рд░ рдПрдХ рдЬреИрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЖрд╡рд░рдг рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рди рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ рдПрдХ рдЪрд░ рдХреЛ рдХреИрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдмрд▓реНрдХрд┐ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреНред рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛?
рдФрд░ рдпрд╣рд╛рдВ рдХреНрд▓реЛрдЬрд░ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рджреЗрд░реА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди (рдпрд╛ рд╡рд┐рдзрд┐) рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
<?php $dateCreated = date('Ym-d'); $dbQueryCounter = 0; $fallback = function() use($dateCreated, &$dbQueryCounter) { $dbQueryCounter++;
рдЖрдкрдХреЛ рдЗрд╕ рдХреЛрдб рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рд╡рд┐рдзрд┐ (рдлрд╝рдВрдХреНрд╢рди) рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЙрд╕рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛, рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдВ рдпрд╣ рдХреЛрдб рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдпрджрд┐ рдХреЛрдб рдЬрд┐рд╕реЗ рд╣рдо рдЖрд╕реНрдердЧрд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рд╡рд╛рдкрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред
- рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде, рдХреНрд▓реЛрдЬрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЙрд╕ рд╕рдВрджрд░реНрдн рд╕реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ PHP 5.3 рдореЗрдВ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ create_function () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдореВрд▓рднреВрдд рдЕрдВрддрд░ рд╣реИред
- рдЪрд░ рдХреЛ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХрд┐рд╕реА рднреА рдЪрд░ рдХреЛ рдмрдВрдж (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $ dbQueryCounter рдХрд╛рдЙрдВрдЯрд░) рдХреЗ рдЕрдВрджрд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рддреЛ рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- PHP5.3 рдореЗрдВ рдмреЗрдирд╛рдореА рдлрд╝рдВрдХреНрд╢рди рдХреНрд▓реЛрдЬрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ - рдЗрд╕ рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред