PHP 8.2 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдирдВрддрд░, PHP 8.2 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рдирд╡реАрди рд╢рд╛рдЦреЗрдд рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛, рддрд╕реЗрдЪ рд╕реБрд╕рдВрдЧрддрддрд╛ рдЦрдВрдбрд┐рдд рдХрд░рдгрд╛рд░реЗ рдЕрдиреЗрдХ рдмрджрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.

PHP 8.2 рдордзреАрд▓ рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░рдгрд╛:

  • рд╡рд░реНрдЧ рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА. рдЕрд╢рд╛ рд╡рд░реНрдЧрд╛рдВрдордзреАрд▓ рдЧреБрдгрдзрд░реНрдо рдлрдХреНрдд рдПрдХрджрд╛рдЪ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рддреНрдпрд╛рдирдВрддрд░ рддреЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд. рдкреВрд░реНрд╡реА, рд╡реИрдпрдХреНрддрд┐рдХ рд╡рд░реНрдЧ рдЧреБрдгрдзрд░реНрдо рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рдЖрддрд╛ рддреБрдореНрд╣реА рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕рд░реНрд╡ рд╡рд░реНрдЧ рдЧреБрдгрдзрд░реНрдорд╛рдВрд╕рд╛рдареА рд╣рд╛ рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛. рд╡рд░реНрдЧ рд╕реНрддрд░рд╛рд╡рд░ "рд░реАрдбрдУрдирд▓реА" рдзреНрд╡рдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рдЧреБрдгрдзрд░реНрдорд╛рдВрдирд╛ рдЧрддрд┐рдорд╛рдирдкрдгреЗ рд╡рд░реНрдЧрд╛рдд рдЬреЛрдбрдгреНрдпрд╛рдкрд╛рд╕реВрди рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рддреЗ. рдХреЗрд╡рд│ рд╡рд╛рдЪрдиреАрдп рд╡рд░реНрдЧ рдкреЛрд╕реНрдЯ { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп __рд░рдЪрдирд╛ ( рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ $рд╢реАрд░реНрд╖рдХ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓реЗрдЦрдХ $рд▓реЗрдЦрдХ, ) {} } $рдкреЛрд╕реНрдЯ = рдирд╡реАрди рдкреЛрд╕реНрдЯ(/* тАж */); $post->рдЕрдЬреНрдЮрд╛рдд = 'рдЪреБрдХреАрдЪреЗ'; // рддреНрд░реБрдЯреА: рдбрд╛рдпрдиреЕрдорд┐рдХ рдорд╛рд▓рдорддреНрддрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдкреЛрд╕реНрдЯ::$рдЕрдЬреНрдЮрд╛рдд
  • тАЬрд╕рддреНрдптАЭ, тАЬрдЕрд╕рддреНрдптАЭ рдЖрдгрд┐ тАЬрдирд▓тАЭ рдЕрд╕реЗ рд╡реЗрдЧрд│реЗ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд▓реЗ, рдЬреЗ рдлрдХреНрдд рдПрдХ рд╡реИрдз рдореВрд▓реНрдп рдШреЗрдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрд░рд░ рдЯрд░реНрдорд┐рдиреЗрд╢рди рдлреНрд▓реЕрдЧ рдХрд┐рдВрд╡рд╛ рд░рд┐рдХрд╛рдореНрдпрд╛ рдореВрд▓реНрдпрд╛рд╕рд╣ рдлрдВрдХреНрд╢рди рдкрд░рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рдкреВрд░реНрд╡реА, тАЬtrueтАЭ, тАЬfalseтАЭ рдЖрдгрд┐ тАЬnullтАЭ рдлрдХреНрдд рдЗрддрд░ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╕рдВрдпреЛрдЧрд╛рдиреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рд╣реЛрддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬstring|falseтАЭ), рдкрдг рдЖрддрд╛ рддреЗ рд╡реЗрдЧрд│реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд: function alwaysFalse(): false { return false ; }
  • рддреНрд░реБрдЯреА рджрд░рдореНрдпрд╛рди рд╕реНрдЯреЕрдХ рдЯреНрд░реЗрд╕ рдЖрдЙрдЯрдкреБрдЯрдордзреНрдпреЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдлрд┐рд▓реНрдЯрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд╕рдорд╕реНрдпрд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгрд╛рд░реНтАНрдпрд╛ рдЖрдгрд┐ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рджреЗрдгрд╛рд▒реНрдпрд╛ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡рд╛рдВрдирд╛ рдЖрдкреЛрдЖрдк рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рддреНрд░реБрдЯреАрдВрдмрджреНрджрд▓рдЪреА рдорд╛рд╣рд┐рддреА рдЖрдкреЛрдЖрдк рдкрд╛рдард╡рд▓реА рдЬрд╛рддреЗ рддреЗрд╡реНрд╣рд╛ рдХрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд╣рд┐рддреА рдХрд╛рдврдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реВ рд╢рдХрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛рдирд╛рд╡реЗ, рд╕рдВрдХреЗрддрд╢рдмреНрдж рдЖрдгрд┐ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧрдордзреВрди рд╡рдЧрд│реВ рд╢рдХрддрд╛. рдлрдВрдХреНрд╢рди рдЯреЗрд╕реНрдЯ ($foo, #[\SensitiveParameter] $password, $baz ) { рдереНрд░реЛ рдирд╡реАрди рдЕрдкрд╡рд╛рдж('рдПрд░рд░'); } рдЪрд╛рдЪрдгреА ('рдлреВ', 'рдкрд╛рд╕рд╡рд░реНрдб', 'рдмрд╛рдЬ'); рдШрд╛рддрдХ рддреНрд░реБрдЯреА: рди рдкрдХрдбрд▓реЗрд▓рд╛ рдЕрдкрд╡рд╛рдж: test.php рдордзреНрдпреЗ рддреНрд░реБрдЯреА:8 рд╕реНрдЯреЕрдХ рдЯреНрд░реЗрд╕: тАЛтАЛ#0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} test.php рдордзреНрдпреЗ рдлреЗрдХрд▓реЗ рдУрд│ 8 рд╡рд░
  • рдЧреБрдгрд╛рдВрдордзреНрдпреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА (рд╡рд┐рд╢реЗрд╖рдгреЗ, рдХреЛрдб рдкреБрдиреНрд╣рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдпрдВрддреНрд░рдгрд╛). рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдирд╛ рдЧреБрдг рд╡рд╛рдкрд░рдгрд╛рд░реНтАНрдпрд╛ рд╡рд░реНрдЧрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ (рдкрд░рдВрддреБ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рджреНрд╡рд╛рд░реЗ рдирд╛рд╣реА). рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдлреВ { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ const CONSTANT = 1; рдкрдмреНрд▓рд┐рдХ рдлрдВрдХреНрд╢рди рдмрд╛рд░(): int { return self::CONSTANT; // рдШрд╛рддрдХ рддреНрд░реБрдЯреА } } рд╡рд░реНрдЧ рдмрд╛рд░ { Foo рд╡рд╛рдкрд░рд╛; } var_dump(рдмрд╛рд░::CONSTANT); // рез
  • рдбрд┐рд╕рдЬрдВрдХреНрдЯрд┐рд╡ рдиреЙрд░реНрдорд▓ рдлреЙрд░реНрдо (DNF, Disjunctive Normal Form) рдордзреНрдпреЗ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЖрд╣реЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рд╕рдВрдШрдЯрди (рджреЛрди рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рд╕рдВрдХрд▓рди) рдЖрдгрд┐ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рдЫреЗрджрдирдмрд┐рдВрджреВ (рдЬреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреА рдореВрд▓реНрдпреЗ рдЕрдиреЗрдХрд╛рдВрдЪреНрдпрд╛ рдЦрд╛рд▓реА рдпреЗрддрд╛рдд) рдПрдХрддреНрд░ рдХрд░реВ рджреЗрддреЗ. рдПрдХрд╛рдЪ рд╡реЗрд│реА рдкреНрд░рдХрд╛рд░). рд╡рд░реНрдЧ Foo { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрдВрдХреНрд╢рди рдмрд╛рд░((A&B)|null $entity) { if ($entity === null) { рд░рд┐рдЯрд░реНрди рдирд▓; } $entity рдкрд░рдд рдХрд░рд╛; } }
  • рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЖрдгрд┐ рдЕрдиреБрдХреНрд░рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрдгрд┐ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдПрдХ рдирд╡реАрди рд╡рд┐рд╕реНрддрд╛рд░ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рдореЙрдбреНрдпреВрд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрдпреВрдбреЛ-рд░рдБрдбрдо рдирдВрдмрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рднрд┐рдиреНрди рдЗрдВрдЬрд┐рди рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЖрдгрд┐ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдпрд╛рджреГрдЪреНрдЫрд┐рдХрдкрдгреЗ рдЕреЕрд░реЗ рдЖрдгрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рдХреНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕреЕрд░реЗ рдХреА рдирд┐рд╡рдбрдгреЗ, рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░рд╛рдЬреНрдпрд╛рд╕рд╣ рдЕрдиреЗрдХ рдЬрдирд░реЗрдЯрд░рдЪрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡рд╛рдкрд░. $rng = $is_production ? рдирд╡реАрди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ\Engine\Secure(): рдирд╡реАрди Random\Engine\Mt19937(1234); $randomizer = рдирд╡реАрди Random\Randomizer($rng); $randomizer->shuffleString('foobar');
  • рд╕реНрдерд╛рдирд┐рдХ-рд╕реНрд╡рддрдВрддреНрд░ рдХреЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рдХреЗрд▓реЗ. strtolower() рдЖрдгрд┐ strtoupper() рд╕рд╛рд░рдЦреА рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрддрд╛ рдиреЗрд╣рдореА ASCII рд╢реНрд░реЗрдгреАрддреАрд▓ рдЕрдХреНрд╖рд░рд╛рдВрдЪреА рдХреЗрд╕ "C" рд▓реЛрдХреЗрд▓рдордзреНрдпреЗ рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдмрджрд▓рддрд╛рдд.
  • рдирд╡реАрди рдХрд╛рд░реНрдпреЗ рдЬреЛрдбрд▓реА: mysqli_execute_query, curl_upkeep, memory_reset_peak_usage, ini_parse_quantity, libxml_get_external_entity_loader, sodium_crypto_stream_xchacha20_xor_ic, openssl_cipher_key_leng.
  • рдирд╡реАрди рдкрджреНрдзрддреА рдЬреЛрдбрд▓реНрдпрд╛: mysqli::execute_query, ZipArchive::getStreamIndex, ZipArchive::getStreamName, ZipArchive::clearError, ReflectionFunction::isAnonymous, ReflectionMethod::hasPrototype.
  • рдХреНрд▓рд╛рд╕рдордзреНрдпреЗ рдбрд╛рдпрдиреЕрдорд┐рдХрд▓реА рдЧреБрдгрдзрд░реНрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. PHP 9.0 рдордзреНрдпреЗ, рд╡рд░реНрдЧрд╛рдд рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╕рд▓реЗрд▓реНрдпрд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓реНрдпрд╛рдиреЗ рддреНрд░реБрдЯреА (ErrorException) рдпреЗрдИрд▓. рдЧреБрдгрдзрд░реНрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА __get рдЖрдгрд┐ __set рдкрджреНрдзрддреА рдкреНрд░рджрд╛рди рдХрд░рдгрд╛рд░реЗ рд╡рд░реНрдЧ рдХрд┐рдВрд╡рд╛ stdClass рдордзреАрд▓ рдбрд╛рдпрдиреЕрдорд┐рдХ рдЧреБрдгрдзрд░реНрдо рдмрджрд▓рд╛рд╢рд┐рд╡рд╛рдп рдХрд╛рд░реНрдп рдХрд░рдд рд░рд╛рд╣рддреАрд▓, рдХреЗрд╡рд│ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕рд▓реЗрд▓реНрдпрд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрд╕рд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдВрдирд╛ рдЫреБрдкреНрдпрд╛ рдмрдЧреНрд╕рдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рджрд┐рд▓реЗ рдЬрд╛рдИрд▓. рдЬреБрдиреНрдпрд╛ рдХреЛрдбрдЪреЗ рдХрд╛рд░реНрдп рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, "#[AllowDynamicProperties]" рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдбрд╛рдпрдиреЕрдорд┐рдХ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддрд╛ рдпреЗрддреЛ.
  • "${var}" рдЖрдгрд┐ ${(var)} рдЕрднрд┐рд╡реНрдпрдХреНрддреА рд╡рд╛рдкрд░реВрди рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреНрдпреЗ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ "{$var}" рдЖрдгрд┐ "$var" рдкрд░реНрдпрд╛рдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдХрд╛рдпрдо рдареЗрд╡рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: "рд╣реЕрд▓реЛ {$world}"; рдУрдХреЗ "рд╣реЕрд▓реЛ $рд╡рд░реНрд▓реНрдб"; рдареАрдХ рдЖрд╣реЗ "рд╣реЕрд▓реЛ ${world}"; рдирд╛рдкрд╕рдВрдд: рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреНрдпреЗ ${} рд╡рд╛рдкрд░рдгреЗ рдирд╛рдкрд╕рдВрдд рдЖрд╣реЗ
  • рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЕрдВрд╢рддрдГ рд╕рдорд░реНрдерд┐рдд рдХреЙрд▓реЗрдмрд▓ рдЬреНрдпрд╛рдВрдирд╛ "call_user_func($callable)" рджреНрд╡рд╛рд░реЗ рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдкрд░рдВрддреБ "$callable()": "self::method" "parent::method" "static" ::method рдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдХреЙрд▓рд┐рдВрдЧрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА " ["рд╕реНрд╡рдд:", "рдкрджреНрдзрдд"] ["рдкрд╛рд▓рдХ", "рдкрджреНрдзрдд"] ["рд╕реНрдерд┐рд░", "рдкрджреНрдзрдд"] ["рдлреВ", "рдмрд╛рд░::рдкрджреНрдзрдд"] [рдирд╡реАрди рдлреВ, "рдмрд╛рд░: :рдкрджреНрдзрдд" ]
  • error_log_mode рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрд░реБрдЯреА рд▓реЙрдЧрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдореЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛