ืึทืœืฃ ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ PHP 8.2 ื”ืื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ

ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทืœืฃ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืฆื•ื•ื™ื™ึทื’ ืคื•ืŸ ื“ื™ PHP 8.2 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืื™ื– ื“ืขืจืœืื ื’ื˜. ื“ื™ ืžืขืœื“ื•ื ื’ ืื™ื– ืกืงืขื“ื–ืฉื•ืœื“ ืคึฟืึทืจ 24 ื ืื•ื•ืขืžื‘ืขืจ. ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ืฉื•ื™ืŸ ื‘ื ื™ืžืฆื ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ ืึธื“ืขืจ ืคึผืœืึทื ื ืขื“ ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ืŸ PHP 8.2:

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื‘ืึทื–ื•ื ื“ืขืจ ื˜ื™ื™ืคึผืก "ืคืึทืœืฉ" ืื•ืŸ "ื ืึทืœ", ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜, ืœืžืฉืœ, ืคึฟืึทืจ ืึท ืคึฟื•ื ืงืฆื™ืข ืฆื• ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ื˜ืขืจืžืึทื ื™ื™ืฉืึทืŸ ืคืึธืŸ ืึธื“ืขืจ ืึท ืœื™ื™ื“ื™ืง ื•ื•ืขืจื˜. ื‘ื™ื– ืึทื”ืขืจ, "ืคืึทืœืฉ" ืื•ืŸ "ื ื•ืœ" ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื‘ืœื•ื™ื– ืื™ืŸ ืงืึทื ื“ื–ืฉืึทื ื’ืงืฉืึทืŸ ืžื™ื˜ ืื ื“ืขืจืข ื˜ื™ื™ืคึผืก (ืœืžืฉืœ, "ืฉื˜ืจื™ืงืœ|ืคืึทืœืฉ"), ืึธื‘ืขืจ ืื™ืฆื˜ ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืกืขืคึผืขืจืึทื˜ืœื™: ืคึฟื•ื ืงืฆื™ืข ืฉื˜ืขื ื“ื™ืง ืคืึทืœืฉ (): ืคืึทืœืฉ { ืฆื•ืจื™ืงืงื•ืžืขืŸ ืคืึทืœืฉ; }
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฆื™ื™ื›ืŸ ืึท ืงืœืึทืก ื•ื•ื™ ื‘ืœื•ื™ื– ืœื™ื™ืขื ืขืŸ. ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ืŸ ืึทื–ืึท ืงืœืืกืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืึทืฉื˜ื™ืžื˜ ื‘ืœื•ื™ื– ืึทืžืึธืœ, ื ืึธืš ื•ื•ืึธืก ื–ื™ื™ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขื‘ื™ื˜ืŸ. ื‘ื™ื– ืึทื”ืขืจ, ื™ื—ื™ื“ ืงืœืึทืก ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืื ื’ืขืฆื™ื™ื›ื ื˜ ื‘ืœื•ื™ื– ืคึฟืึทืจ ืœื™ื™ืขื ืขืŸ, ืึธื‘ืขืจ ืื™ืฆื˜ ืื™ืจ ืงืขื ืขืŸ ื’ืขื‘ืŸ ื“ืขื ืžืึธื“ืข ืคึฟืึทืจ ืึทืœืข ืงืœืึทืก ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ืŸ ืึทืžืึธืœ. ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ "ืœื™ื™ืขื ืขืŸ" ืคืึธืŸ ืื™ืŸ ื“ื™ ืงืœืึทืก ืžื“ืจื’ื” ืื•ื™ืš ื‘ืœืึทืงืก ืคึผืจืึทืคึผืขืจื˜ื™ื– ืฆื• ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืฆื• ื“ื™ ืงืœืึทืก. ืœื™ื™ืขื ืขืŸ ื‘ืœื•ื™ื– ืงืœืึทืก ืคึผืึธืกื˜ {ืคึผื•ื‘ืœื™ืง ืคึฟื•ื ืงืฆื™ืข __ืงืึทื ืกื˜ืจืึทืงื˜ (ืคื•ื‘ืœื™ืง ืฉื˜ืจื™ืงืœ $ ื˜ื™ื˜ืœ, ืขืคื ื˜ืœืขืš ืžื—ื‘ืจ $ ืžื—ื‘ืจ,) {}} $ ืคึผืึธืกื˜ = ื ื™ื™ึท ืคึผืึธืกื˜ืŸ (/* โ€ฆ */); $post->unknown = 'ืคืึทืœืฉ'; // ื˜ืขื•ืช: ืงืขื ืขืŸ ื ื™ื˜ ืžืึทื›ืŸ ื“ื™ื ืึทืžื™ืฉ ืคืึทืจืžืึธื’ ืคึผืึธืกื˜ืŸ::$ืื•ืžื‘ืึทืงืึทื ื˜
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืฉืึทืคึฟืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ืŸ ืึท ืงืœืึทืก (ื•ื•ื™ "ืคึผืึธืกื˜ืŸ-> ืื•ืžื‘ืึทืงืึทื ื˜" ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื™ื‘ืŸ) ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“. ืื™ืŸ PHP 9.0, ืึทืงืกืขืก ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื˜ื›ื™ืœืขืก ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ื™ ืงืœืึทืก ื•ื•ืขื˜ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ืŸ ืึท ื˜ืขื•ืช (ErrorException). ืงืœืืกืŸ ื•ื•ืึธืก ืฆื•ืฉื˜ืขืœืŸ __get ืื•ืŸ __set ืžืขื˜ื”ืึธื“ืก ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ืึธื“ืขืจ ื“ื™ื ืึทืžื™ืฉ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ืŸ stdClass ื•ื•ืขื˜ ืคืึธืจื–ืขืฆืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืึธืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ, ื‘ืœื•ื™ื– ื™ืžืคึผืœื™ืกืึทื˜ ืึทืจื‘ืขื˜ ืžื™ื˜ ื ื™ื˜-ืขื’ื–ื™ืกื˜ืึทื ื˜ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื˜ื™ืฆื˜ ืฆื• ื‘ืึทืฉื™ืฆืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคื•ืŸ ืคืึทืจื‘ืึธืจื’ืŸ ื‘ืึทื’ื–. ืฆื• ื•ืคื”ื™ื˜ืŸ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ื“ื™ ืึทืœื˜ ืงืึธื“, ื“ื™ "#[AllowDynamicProperties]" ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜, ืึทืœืึทื•ื™ื ื’ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ื ืึทืžื™ืฉ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก.
  • ืคึผืจืึธื•ื•ื™ื“ืขืก ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคื™ืœื˜ืขืจ ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื™ืŸ ื“ืขืจ ืึธื ืœื™ื™ื’ืŸ ืฉืคึผื•ืจ ืจืขื–ื•ืœื˜ืึทื˜ ื‘ืขืฉืึทืก ืึท ื˜ืขื•ืช. ื•ื™ืกืฉืขืคึผืŸ ื–ื™ื›ืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืงืขืŸ ื–ื™ื™ืŸ ื ื•ื™ื˜ื™ืง ื•ื•ืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืขืจืจืึธืจืก ื•ื•ืึธืก ืคึผืึทืกื™ืจืŸ ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื’ืขืฉื™ืงื˜ ืฆื• ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ื‘ืึทื“ื™ื ื•ื ื’ืก ื•ื•ืึธืก ืฉืคึผื•ืจ ืคึผืจืึธื‘ืœืขืžืก ืื•ืŸ ืžื™ื˜ื˜ื™ื™ืœืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื•ื•ืขื’ืŸ ื–ื™ื™. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ืงืขื ืขืŸ ื•ื™ืกืฉืœื™ืกืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก ื•ื•ืึธืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื•ืกืขืจื ืึทืžืขืก, ืคึผืึทืกื•ื•ืขืจื“ื– ืื•ืŸ ืกื•ื•ื™ื•ื•ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืคื•ืŸ ื˜ืจื™ื™ืกื™ื ื’. ืคึฟื•ื ืงืฆื™ืข ื˜ืขืกื˜ ($ ืคืึธืึธ, #[\ SensitiveParameter] $ ืคึผืึทืจืึธืœ, $ ื‘ืึทื–) {ื•ื•ืึทืจืคืŸ ื ื™ื™ึท ื•ื™ืกื ืขื ('ื˜ืขื•ืช'); } test('foo', 'password', 'baz'); ืคืึทื˜ืึทืœ ื˜ืขื•ืช: ื•ื ืงืึทืฉื˜ ื•ื™ืกื ืขื: ื˜ืขื•ืช ืื™ืŸ test.php:8 ืกื˜ืึทืง ืฉืคึผื•ืจ: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {ื”ื•ื™ืคึผื˜} ืืจืœื ื’ืขื•ื•ืืจืคืŸ ืื™ืŸ test.php ืื•ื™ืฃ ืฉื•ืจื” 8
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื•ื•ืึทืœื•ืขืก ืื™ืŸ ืกื˜ืจื™ื ื’ืก ื ื™ืฆืŸ ื“ื™ ืื•ื™ืกื“ืจื•ืงืŸ "${ื•ื•ืึทืจ}" ืื•ืŸ ${(var)} ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืงืึทืžืึทื ืœื™ ื’ืขื•ื•ื™ื™ื ื˜ "{$var}" ืื•ืŸ "$var" ืกืึทื‘ืกื˜ื™ื˜ื™ื•ืฉืึทื ื– ืื™ื– ืจื™ื˜ื™ื™ื ื“. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ: "ื”ืขืœื {$ื•ื•ืขืœื˜}"; ื’ื•ื˜ "ื”ืขืœื $ื•ื•ืขืœื˜"; ื’ื•ื˜ "ื”ืขืœื ${ื•ื•ืขืœื˜}"; ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“: ื ื™ืฆืŸ ${} ืื™ืŸ ืกื˜ืจื™ื ื’ืก ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“
  • ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ื˜ื™ื™ืœ ื’ืขืฉื˜ื™ืฆื˜ ืงืึทืœืœืึทื‘ืœืขืก ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืจื•ืคืŸ ื“ื•ืจืš "call_user_func($callable)" ืึธื‘ืขืจ ื˜ืึธืŸ ื ื™ื˜ ืฉื˜ื™ืฆืŸ ืจื•ืคืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ "$callable()": "ื–ื™ืš :: ืžืขื˜ืึทื“" "ืคืึธื˜ืขืจ :: ืžืขื˜ืึทื“" "ืกื˜ืึทื˜ื™ืง" :: ืžืขื˜ืึทื“ " ["ื–ื™ืš", "ืžืขื˜ืึธื“"] ["ืคืึธื•", "ืžืขื˜ืึธื“"] ["ืกื˜ืึทื˜ื™ืง", "ืžืขื˜ืึธื“"] ["Foo", "Bar::method"] [ื ื™ื™ึท Foo, "Bar: :method" ]
  • ื™ืžืคึผืœืึทืžืขื ืึทื“ ืœืึธืงืึทืœ-ืคืจื™ื™ึท ืคืึทืœ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ. ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ื™ strtolower () ืื•ืŸ strtoupper () ืื™ืฆื˜ ืฉื˜ืขื ื“ื™ืง ื’ืขืจ ื“ื™ ืคืึทืœ ืคื•ืŸ ืื•ืชื™ื•ืช ืื™ืŸ ื“ื™ ASCII ืงื™ื™ื˜ ื•ื•ื™ ืื•ื™ื‘ ืฉื˜ืขืœืŸ ืฆื• ื“ื™ "C" ืœืึธืงืึทืœ.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’