PHP 8.2 เดจเตเดฑเต† เด†เตฝเดซ เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เด†เดฐเด‚เดญเดฟเดšเตเดšเต

ะŸั€ะตะดัั‚ะฐะฒะปะตะฝ ะฟะตั€ะฒั‹ะน ะฐะปัŒั„ะฐ-ะฒั‹ะฟัƒัะบ ะฝะพะฒะพะน ะฒะตั‚ะบะธ ัะทั‹ะบะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั PHP 8.2. ะ ะตะปะธะท ะฝะฐะผะตั‡ะตะฝ ะฝะฐ 24 ะฝะพัะฑั€ั. ะžัะฝะพะฒะฝั‹ะต ะฝะพะฒัˆะตัั‚ะฒะฐ, ัƒะถะต ะดะพัั‚ัƒะฟะฝั‹ะต ะดะปั ั‚ะตัั‚ะธั€ะพะฒะฐะฝะธั ะธะปะธ ะฟะปะฐะฝะธั€ัƒะตะผั‹ะต ะบ ั€ะตะฐะปะธะทะฐั†ะธะธ ะฒ PHP 8.2:

  • ะ”ะพะฑะฐะฒะปะตะฝั‹ ะพั‚ะดะตะปัŒะฝั‹ะต ั‚ะธะฟั‹ ยซfalseยป ะธ ยซnullยป, ะบะพั‚ะพั€ั‹ะต ะผะพะณัƒั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั, ะฝะฐะฟั€ะธะผะตั€, ะดะปั ะฒะพะทะฒั€ะฐั‰ะตะฝะธั ั„ัƒะฝะบั†ะธะตะน ะฟั€ะธะทะฝะฐะบะฐ ะทะฐะฒะตั€ัˆะตะฝะธั ั ะพัˆะธะฑะบะพะน ะธะปะธ ะฟัƒัั‚ะพะณะพ ะทะฝะฐั‡ะตะฝะธั. ะ ะฐะฝะตะต ยซfalseยป ะธ ยซnullยป ะผะพะณะปะธ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั ั‚ะพะปัŒะบะพ ะฒ ัะฒัะทะบะต ั ะดั€ัƒะณะธะผะธ ั‚ะธะฟะฐะผะธ (ะฝะฐะฟั€ะธะผะตั€, ยซstring|falseยป), ะฐ ั‚ะตะฟะตั€ัŒ ะผะพะณัƒั‚ ะฟั€ะธะผะตะฝัั‚ัŒัั ะพั‚ะดะตะปัŒะฝะพ: function alwaysFalse(): false { return false; }
  • เด’เดฐเต เด•เตเดฒเดพเดธเต เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดšเต‡เตผเดคเตเดคเต. เด…เดคเตเดคเดฐเด‚ เด•เตเดฒเดพเดธเตเด•เดณเดฟเดฒเต† เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เด’เดฐเดฟเด•เตเด•เตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด…เดต เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดฎเตเดฎเตเดชเต, เดตเตเดฏเด•เตเดคเดฟเด—เดค เด•เตเดฒเดพเดธเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเด‚ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพ เด•เตเดฒเดพเดธเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพเด•เตเด•เตเด‚ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดˆ เดฎเต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚. เด•เตเดฒเดพเดธเต เดคเดฒเดคเตเดคเดฟเตฝ "เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเด‚" เดซเตเดฒเดพเด—เต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด•เตเดฒเดพเดธเดฟเดฒเต‡เด•เตเด•เต เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เดณเต† เดคเดŸเดฏเตเดจเตเดจเต. เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณ เด•เตเดฒเดพเดธเต เดชเต‹เดธเตเดฑเตเดฑเต {เดชเตŠเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ __เด•เตบเดธเตเดŸเตเดฐเด•เตเดฑเตเดฑเต (เดชเดฌเตเดฒเดฟเด•เต เดธเตเดŸเตเดฐเดฟเด‚เด—เต $เดถเต€เตผเดทเด•เด‚, เดชเตŠเดคเต เดฐเดšเดฏเดฟเดคเดพเดตเต $เดฐเดšเดฏเดฟเดคเดพเดตเต, ) {}} $post = เดชเตเดคเดฟเดฏ เดชเต‹เดธเตเดฑเตเดฑเต(/* โ€ฆ */); $post->เด…เดœเตเดžเดพเดคเด‚ = 'เดคเต†เดฑเตเดฑเต'; // เดชเดฟเดถเด•เต: เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ เดชเต‹เดธเตเดฑเตเดฑเต::$เด…เดœเตเดžเดพเดคเด‚
  • ะžะฑัŠัะฒะปะตะฝะฐ ัƒัั‚ะฐั€ะตะฒัˆะตะน ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะดะธะฝะฐะผะธั‡ะตัะบะพะณะพ ัะพะทะดะฐะฝะธั ัะฒะพะนัั‚ะฒ ะฒ ะบะปะฐััะต (ะบะฐะบ ยซpost->unknownยป ะฒ ะฟั€ะธะผะตั€ะต ะฒั‹ัˆะต). ะ’ PHP 9.0 ะพะฑั€ะฐั‰ะตะฝะธะต ะบ ัะฒะพะนัั‚ะฒะฐะผ, ะธะทะฝะฐั‡ะฐะปัŒะฝะพ ะฝะต ะพะฟั€ะตะดะตะปั‘ะฝะฝั‹ะผ ะฒ ะบะปะฐััะต, ะฑัƒะดะตั‚ ะฟั€ะธะฒะพะดะธั‚ัŒ ะบ ะพัˆะธะฑะบะต (ErrorException). ะšะปะฐััั‹, ะฟั€ะตะดะพัั‚ะฐะฒะปััŽั‰ะธะต ะผะตั‚ะพะดั‹ __get ะธ __set ะดะปั ัะพะทะดะฐะฝะธั ัะฒะพะนัั‚ะฒ, ะธะปะธ ะดะธะฝะฐะผะธั‡ะตัะบะธะต ัะฒะพะนัั‚ะฒะฐ ะฒ stdClass ะฟั€ะพะดะพะปะถะฐั‚ ั€ะฐะฑะพั‚ะฐั‚ัŒ ะฑะตะท ะธะทะผะตะฝะตะฝะธะน, ะฟั€ะตะบั€ะฐั‚ะธั‚ัั ะฟะพะดะดะตั€ะถะบะฐ ั‚ะพะปัŒะบะพ ะฝะตัะฒะฝะพะน ั€ะฐะฑะพั‚ั‹ ั ะฝะตััƒั‰ะตัั‚ะฒัƒัŽั‰ะธะผะธ ัะฒะพะนัั‚ะฒะฐะผะธ ะดะปั ั‚ะพะณะพ ั‡ั‚ะพะฑั‹ ะทะฐั‰ะธั‚ะธั‚ัŒ ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะฐ ะพั‚ ัะบั€ั‹ั‚ั‹ั… ะพัˆะธะฑะพะบ. ะ”ะปั ัะพั…ั€ะฐะฝะตะฝะธั ั€ะฐะฑะพั‚ั‹ ัั‚ะฐั€ะพะณะพ ะบะพะดะฐ ะฟั€ะตะดะปะพะถะตะฝ ะฐั‚ั€ะธะฑัƒั‚ ยซ#[AllowDynamicProperties]ยป, ั€ะฐะทั€ะตัˆะฐัŽั‰ะธะน ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะดะธะฝะฐะผะธั‡ะตัะบะธั… ัะฒะพะนัั‚ะฒ.
  • เด’เดฐเต เดชเดฟเดถเด•เต เดธเดฎเดฏเดคเตเดคเต เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดŸเตเดฐเต†เดฏเตเดธเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ เดธเต†เตปเดธเดฟเดฑเตเดฑเต€เดตเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเตฝเด•เตเดจเตเดจเต. เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดชเดฟเดถเด•เตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตเดตเดฏเดฎเต‡เดต เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดšเดฟเดฒ เดตเดฟเดตเดฐเด™เตเด™เตพ เดตเต†เดŸเตเดŸเดฟเด•เตเด•เตเดฑเดฏเตโ€Œเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดจเตเดจเต‡เด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด•เตเดคเตƒเดจเดพเดฎเด™เตเด™เตพ, เดชเดพเดธเตโ€Œเดตเต‡เดกเตเด•เตพ, เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดŸเตเดฐเต‡เดธเดฟเด‚เด—เดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดดเดฟเดตเดพเด•เตเด•เดพเด‚. เดซเด‚เด—เตโ€Œเดทเตป เดŸเต†เดธเตเดฑเตเดฑเต ($foo, #[\SensitiveParameter] $password, $baz ) {เดชเตเดคเดฟเดฏ เด’เดดเดฟเดตเดพเด•เตเด•เตฝ('เดชเดฟเดถเด•เต'); } test('foo', 'password', 'baz'); เดฎเดพเดฐเด•เดฎเดพเดฏ เดชเดฟเดถเด•เต: เดชเดฟเดŸเดฟเด•เดฟเดŸเตเดŸเดพเดคเตเดค เด’เดดเดฟเดตเดพเด•เตเด•เตฝ: test.php-เดฒเต† เดชเดฟเดถเด•เต: 8 เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดŸเตเดฐเต†เดฏเตเดธเต: #0 test.php(11): test('foo', เด’เดฌเตเดœเด•เตเดฑเตเดฑเต(SensitiveParameterValue), 'baz') #1 {main} test.php-เตฝ เดŽเดฑเดฟเดžเตเดžเต. 8 เดตเดฐเดฟเดฏเดฟเตฝ
  • "${var}", ${(var)} เดŽเดจเตเดจเต€ เดŽเด•เตโ€Œเดธเตโ€Œเดชเตเดฐเดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต† เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เด’เดดเดฟเดตเดพเด•เตเด•เดฟ. เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ "{$var}", "$var" เดŽเดจเตเดจเต€ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเดจเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต: "เดนเดฒเต‹ {$world}"; เดถเดฐเดฟ "เดนเดฒเต‹ $เดตเต‡เตพเดกเต"; เดถเดฐเดฟ "เดนเดฒเต‹ ${world}"; เด’เดดเดฟเดตเดพเด•เตเด•เดฟ: เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เดณเดฟเตฝ ${} เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • "call_user_func($callable)" เดตเดดเดฟ เดตเดฟเดณเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดญเดพเด—เดฟเด•เดฎเดพเดฏเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เด•เต‹เดณเตเด•เตพ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดšเตเดšเต, เดŽเดจเตเดจเดพเตฝ "$callable()": "self:: method" "parent:: method" "static" :: method เดŽเดจเตเดจ เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ " ["เดธเตเดตเดฏเด‚", "เดฐเต€เดคเดฟ"] ["เดฎเดพเดคเดพเดชเดฟเดคเดพเดตเต", "เดฐเต€เดคเดฟ"] ["เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต", "เดฐเต€เดคเดฟ"] ["เดซเต‚", "เดฌเดพเตผ:: เดฐเต€เดคเดฟ"] [เดชเตเดคเดฟเดฏ เดซเต‚, "เดฌเดพเตผ:: เดฐเต€เดคเดฟ" ]
  • เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•-เดธเตเดตเดคเดจเตเดคเตเดฐ เด•เต‡เดธเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ. strtolower(), strtoupper() เดชเต‹เดฒเตเดณเตเดณ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เด‡เดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ ASCII เดถเตเดฐเต‡เดฃเดฟเดฏเดฟเดฒเต† เดชเตเดฐเดคเต€เด•เด™เตเด™เดณเตเดŸเต† เด•เต‡เดธเต "C" เดฒเตŠเด•เตเด•เต‡เดฒเดฟเดฒเต‡เด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•