แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž—แžถแžŸแžถแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธ PHP 8.2

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž˜แžฝแž™แž†แŸ’แž“แžถแŸ†แž“แŸƒแž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸ แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž—แžถแžŸแžถแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธ PHP 8.2 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž แžถแž‰แŸ” แžŸแžถแžแžถแžแŸ’แž˜แžธแž“แŸแŸ‡แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‘แžถแŸ†แž„แžŸแŸŠแŸแžšแžธแž“แŸƒแž˜แžปแžแž„แžถแžšแžแŸ’แž˜แžธ แž€แŸแžŠแžผแž…แž‡แžถแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž‡แžถแž…แŸ’แžšแžพแž“แžŠแŸ‚แž›แž”แŸ†แž”แŸ‚แž€แž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแŸ”

แž€แžถแžšแž€แŸ‚แž›แž˜แŸ’แžขแžŸแŸ†แžแžถแž“แŸ‹แŸ—แž“แŸ…แž€แŸ’แž“แžปแž„ PHP 8.2แŸ–

  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแŸ’แž“แžถแž€แŸ‹แžแžถแž”แžถแž“แžแŸ‚แžขแžถแž“แŸ” แž›แž€แŸ’แžแžŽแžŸแž˜แŸ’แž”แžแŸ’แžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แžแŸ’แž“แžถแž€แŸ‹แž”แŸ‚แž”แž“แŸแŸ‡แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžแŸ‚แž˜แŸ’แžแž„แž‚แžแŸ‹ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž“แŸ„แŸ‡แž–แžฝแž€แžœแžถแž˜แžทแž“แžขแžถแž…แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž”แžถแž“แž‘แŸแŸ” แž–แžธแž˜แžปแž“ แž›แž€แŸ’แžแžŽแžŸแž˜แŸ’แž”แžแŸ’แžแžทแžแŸ’แž“แžถแž€แŸ‹แž“แžธแž˜แžฝแž™แŸ—แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถแž”แžถแž“แžแŸ‚แžขแžถแž“ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžฅแžกแžผแžœแž“แŸแŸ‡แžขแŸ’แž“แž€แžขแžถแž…แž”แžพแž€แžšแž”แŸ€แž”แž“แŸแŸ‡แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž›แž€แŸ’แžแžŽแžŸแž˜แŸ’แž”แžแŸ’แžแžทแžแŸ’แž“แžถแž€แŸ‹แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž€แŸ’แž“แžปแž„แž–แŸแž›แžแŸ‚แž˜แžฝแž™แŸ” แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž‘แž„แŸ‹ "แž”แžถแž“แžแŸ‚แžขแžถแž“" แž“แŸ…แž€แž˜แŸ’แžšแžทแžแžแŸ’แž“แžถแž€แŸ‹แž€แŸแžšแžถแžšแžถแŸ†แž„แž›แž€แŸ’แžแžŽแŸˆแžŸแž˜แŸ’แž”แžแŸ’แžแžทแž–แžธแž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜แžแžถแž˜แžœแž“แŸ’แžแž‘แŸ…แžแŸ’แž“แžถแž€แŸ‹แž•แž„แžŠแŸ‚แžšแŸ” readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* โ€ฆ */); $post->unknown = 'แžแžปแžŸ'; // แž€แŸ†แž แžปแžŸแŸ– แž˜แžทแž“แžขแžถแž…แž”แž„แŸ’แž€แžพแž dynamic property Post::$unknown
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž”แŸ’แžšแž—แŸแž‘แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€ "แž–แžทแž" "แž˜แžทแž“แž–แžทแž" แž“แžทแž„ "แž‘แž‘แŸ" แžŠแŸ‚แž›แžขแžถแž…แž™แž€แžแž˜แŸ’แž›แŸƒแžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœแžแŸ‚แž˜แžฝแž™ แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžงแž‘แžถแž แžšแžŽแŸ แžŠแžพแž˜แŸ’แž”แžธแžแŸ’แžšแžกแž”แŸ‹แž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แž˜แžถแž“แž‘แž„แŸ‹แž”แž‰แŸ’แž…แž”แŸ‹แž€แŸ†แž แžปแžŸ แžฌแžแž˜แŸ’แž›แŸƒแž‘แž‘แŸแŸ” แž–แžธแž˜แžปแž“ "true", "false" แž“แžทแž„ "null" แžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“แžแŸ‚แž‡แžถแž˜แžฝแž™แž”แŸ’แžšแž—แŸแž‘แž•แŸ’แžŸแŸแž„แž‘แŸ€แž (แžงแž‘แžถแž แžšแžŽแŸ "string|false") แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžฅแžกแžผแžœแž“แŸแŸ‡แž–แžฝแž€แžœแžถแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแŸ„แž™แžกแŸ‚แž€แž–แžธแž‚แŸ’แž“แžถแŸ– function alwaysFalse(): false { return false ; }
  • แž•แŸ’แžแž›แŸ‹แž›แž‘แŸ’แž’แž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแžแŸ’แžšแž„แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžšแžŸแžพแž”แž“แŸ…แž€แŸ’แž“แžปแž„แž›แž‘แŸ’แž’แž•แž›แžŠแžถแž“แž‡แž„แŸ‹แž€แŸ†แžกแžปแž„แž–แŸแž›แž˜แžถแž“แž€แŸ†แž แžปแžŸแŸ” แž€แžถแžšแž€แžถแžแŸ‹แž…แŸแž‰แž–แŸแžแŸŒแž˜แžถแž“แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แžขแžถแž…แž‡แžถแž€แžถแžšแž…แžถแŸ†แž”แžถแž…แŸ‹ แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแž€แŸ†แž แžปแžŸแžŠแŸ‚แž›แž€แžพแžแžกแžพแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž‰แžพแžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž‘แŸ…แž€แžถแž“แŸ‹แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž—แžถแž‚แžธแž‘แžธแž”แžธแžŠแŸ‚แž›แžแžถแž˜แžŠแžถแž“แž”แž‰แŸ’แž แžถ แž“แžทแž„แž‡แžผแž“แžŠแŸ†แžŽแžนแž„แžŠแž›แŸ‹แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแžขแŸ†แž–แžธแž–แžฝแž€แž‚แŸแŸ” แžงแž‘แžถแž แžšแžŽแŸ แžขแŸ’แž“แž€แžขแžถแž…แžŠแž€แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŠแŸ‚แž›แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžˆแŸ’แž˜แŸ„แŸ‡แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹ แž“แžทแž„แžขแžแŸแžšแž”แžšแžทแžŸแŸ’แžแžถแž“แž–แžธแž€แžถแžšแžแžถแž˜แžŠแžถแž“แŸ” แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแž˜แžปแžแž„แžถแžš ($foo, #[\SensitiveParameter] $password, $baz) { throw new Exception('Error'); } test('foo', 'password', 'baz'); แž€แŸ†แž แžปแžŸแž’แŸ’แž„แž“แŸ‹แž’แŸ’แž„แžšแŸ– Uncaught Exception: Error in test.php:8 Stack track: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} แž”แŸ„แŸ‡แž…แŸ„แž›แž€แŸ’แž“แžปแž„ test.php แž“แŸ…แž›แžพแž”แž“แŸ’แž‘แžถแžแŸ‹ 8
  • แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž€แŸ†แžŽแžแŸ‹แžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž›แž€แŸ’แžแžŽแŸˆ (แž›แž€แŸ’แžแžŽแŸˆ แž™แž“แŸ’แžแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžพแžกแžพแž„แžœแžทแž‰แž“แžผแžœแž€แžผแžŠ)แŸ” แžแŸแžšแžŠแŸ‚แž›แž”แžถแž“แž€แŸ†แžŽแžแŸ‹แž€แŸ’แž“แžปแž„แž›แž€แŸ’แžแžŽแŸˆแž˜แžฝแž™แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž…แžผแž›แž”แŸ’แžšแžพแžแžถแž˜แžšแž™แŸˆแžแŸ’แž“แžถแž€แŸ‹แžŠแŸ‚แž›แž”แŸ’แžšแžพแž›แž€แŸ’แžแžŽแŸˆ (แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžทแž“แž˜แŸ‚แž“แžแžถแž˜แžšแž™แŸˆแžˆแŸ’แž˜แŸ„แŸ‡แž›แž€แŸ’แžแžŽแŸˆ) แŸ” แž›แž€แŸ’แžแžŽแŸˆ Foo { public const CONSTANT = 1; public function bar(): int { return self::CONSTANT; // แž€แŸ†แž แžปแžŸแž’แŸ’แž„แž“แŸ‹แž’แŸ’แž„แžš } } แžšแž”แžถแžšแžแŸ’แž“แžถแž€แŸ‹ {แž”แŸ’แžšแžพ Foo; } var_dump(Bar::CONSTANT); // แŸก
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž”แŸ’แžšแž—แŸแž‘แž“แŸ…แž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹แž’แž˜แŸ’แž˜แžแžถแžŠแŸ‚แž›แž˜แžทแž“แž”แŸ‚แž„แž…แŸ‚แž€ (DNF, Disjunctive Normal Form) แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แž‰แŸ’แž…แžผแž›แž‚แŸ’แž“แžถแž“แžผแžœแž”แŸ’แžšแž—แŸแž‘แžŸแž แž‡แžธแž– (แž€แžถแžšแž”แŸ’แžšแž˜แžผแž›แž–แžธแžšแž”แŸ’แžšแž—แŸแž‘ แžฌแž…แŸ’แžšแžพแž“แž”แŸ’แžšแž—แŸแž‘) แž“แžทแž„แž…แŸ†แž“แžปแž…แž”แŸ’แžšแžŸแž–แŸ’แžœแž“แŸƒแž”แŸ’แžšแž—แŸแž‘ (แž”แŸ’แžšแž—แŸแž‘แžŠแŸ‚แž›แžแž˜แŸ’แž›แŸƒแžšแž”แžŸแŸ‹แžœแžถแž’แŸ’แž›แžถแž€แŸ‹แž€แŸ’แžšแŸ„แž˜แž‡แžถแž…แŸ’แžšแžพแž“ แž”แŸ’แžšแž—แŸแž‘แž€แŸ’แž“แžปแž„แž–แŸแž›แžŠแŸ†แžŽแžถแž›แž‚แŸ’แž“แžถ) แŸ” class Foo { public function bar((A&B)|null $entity) { if ($entity === null) { return null; } แžแŸ’แžšแžกแž”แŸ‹ $entity; } }
  • แž•แŸ’แž“แŸ‚แž€แž”แž“แŸ’แžแŸ‚แž˜แžแŸ’แž˜แžธ "แž…แŸƒแžŠแž“แŸ’แž™" แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแŸ’แž“แžพแžกแžพแž„แž‡แžถแž˜แžฝแž™แž“แžนแž„แž˜แžปแžแž„แžถแžš แž“แžทแž„แžแŸ’แž“แžถแž€แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แž€แžพแžแž›แŸแž แž“แžทแž„แž›แŸ†แžŠแžถแž”แŸ‹แž…แŸƒแžŠแž“แŸ’แž™แŸ” แž˜แŸ‰แžผแžŒแžปแž›แž•แŸ’แžŠแž›แŸ‹แž“แžผแžœแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แžแž˜แŸ’แžšแž„แŸ‹แž‘แžทแžŸแžœแžแŸ’แžแžป แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แž€แžพแžแž›แŸแžแž…แŸƒแžŠแž“แŸ’แž™ แžšแžฝแž˜แž‘แžถแŸ†แž„แžขแŸ’แžœแžธแžŠแŸ‚แž›แžŸแŸแž€แŸ’แžแžทแžŸแž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แž€แžถแžšแž‚แŸ’แžšแžธแž”แž‚แŸ’แžšแžธแž” แž“แžทแž„แž•แŸ’แžแž›แŸ‹แž˜แžปแžแž„แžถแžšแž‡แŸ†แž“แžฝแž™ แžงแž‘แžถแž แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž›แžถแž™แžขแžถแžšแŸ แž“แžทแž„แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŠแŸ„แž™แž…แŸƒแžŠแž“แŸ’แž™ แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž‚แŸ’แžšแžถแž”แŸ‹แž…แžปแž…แžขแžถแžšแŸแž…แŸƒแžŠแž“แŸ’แž™แŸ” แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž—แŸ’แž›แžพแž„แž‡แžถแž…แŸ’แžšแžพแž“แž€แŸ’แž“แžปแž„แž–แŸแž›แžŠแŸ†แžŽแžถแž›แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แžšแžŠแŸ’แž‹แžฏแž€แžšแžถแž‡แŸ’แž™แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ” $rng = $is_production ? แžแŸ’แž˜แžธ Random\Engine\Secure(): new Random\Engine\Mt19937(1234); $randomizer = new 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_lengthแŸ”
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแžแŸ’แž˜แžธแŸ– 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"; แž™แž›แŸ‹แž–แŸ’แžšแž˜ "แž‡แŸ†แžšแžถแž”แžŸแžฝแžš ${world}"; แž”แžŠแžทแžŸแŸแž’แŸ– แž€แžถแžšแž”แŸ’แžšแžพ ${} แž€แŸ’แž“แžปแž„แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แžŠแžทแžŸแŸแž’
  • แž”แžถแž“แž”แžŠแžทแžŸแŸแž’แž€แžถแžšแž แŸ…แž‘แžผแžšแžŸแž–แŸ’แž‘แžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแžŠแŸ„แž™แž•แŸ’แž“แŸ‚แž€แžŠแŸ‚แž›แžขแžถแž…แž แŸ…แž”แžถแž“แžแžถแž˜แžšแž™แŸˆ "call_user_func($callable)" แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžทแž“แž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแž แŸ…แžแžถแž˜แž‘แž˜แŸ’แžšแž„แŸ‹ "$callable()": "self::method" "parent::method" "static" ::method "["แžแŸ’แž›แžฝแž“แžฏแž„", "แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž"] ["แžชแž–แžปแž€แž˜แŸ’แžแžถแž™", "แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž"] ["แž‹แžทแžแžทแžœแž“แŸ’แž", "แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž"] ["แž แŸ’แžœแžผ", "แžšแž”แžถแžš::แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž"] [Foo แžแŸ’แž˜แžธ, "แžšแž”แžถแžš: :แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž" ]
  • แž€แžถแžšแžŽแŸ‚แž“แžถแŸ† error_log_mode แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แž€แžถแžšแž€แŸ†แžŽแžแŸ‹ แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แŸ†แžŽแžแŸ‹แžšแž”แŸ€แž”แž…แžผแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‘แŸ…แž€แžถแž“แŸ‹แž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแž€แŸ†แž แžปแžŸแŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster