PHP 8.2 เชจเซเช‚ เช†เชฒเซเชซเชพ เชชเชฐเซ€เช•เซเชทเชฃ เชถเชฐเซ‚ เชฅเชˆ เช—เชฏเซเช‚ เช›เซ‡

PHP 8.2 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซ€ เชจเชตเซ€ เชถเชพเช–เชพเชจเซเช‚ เชชเซเชฐเชฅเชฎ เช†เชฒเซเชซเชพ เชชเซเชฐเช•เชพเชถเชจ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชฐเชฟเชฒเซ€เช 24เชฎเซ€ เชจเชตเซ‡เชฎเซเชฌเชฐเซ‡ เชฅเชตเชพเชจเซ€ เช›เซ‡. เชชเชฐเซ€เช•เซเชทเชฃ เชฎเชพเชŸเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชชเชฒเชฌเซเชง เชฎเซเช–เซเชฏ เชจเชตเซ€เชจเชคเชพเช“ เช…เชฅเชตเชพ PHP 8.2 เชฎเชพเช‚ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฎเชพเชŸเซ‡ เช†เชฏเซ‹เชœเชฟเชค เช›เซ‡:

  • เช…เชฒเช—-เช…เชฒเช— เชชเซเชฐเช•เชพเชฐเซ‹ "เช–เซ‹เชŸเชพ" เช…เชจเซ‡ "เชจเชฒ" เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เชพเชฐเซเชฏ เชฆเซเชตเชพเชฐเชพ เชญเซ‚เชฒ เช…เชฅเชตเชพ เช–เชพเชฒเซ€ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡ เชชเซ‚เชฐเซเชฃ เชฅเชตเชพเชจเชพ เชธเช‚เช•เซ‡เชค เชชเชฐเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เชชเชนเซ‡เชฒเชพเช‚, "false" เช…เชจเซ‡ "null" เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชจเซเชฏ เชชเซเชฐเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชœ เชฅเชˆ เชถเช•เชคเซ‹ เชนเชคเซ‹ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "string|false"), เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชคเซ‡เชจเซ‹ เช…เชฒเช—เชฅเซ€ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡: function alwaysFalse(): false { return false; }
  • เชตเชฐเซเช—เชจเซ‡ เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเซ€. เช†เชตเชพ เชตเชฐเซเช—เซ‹เชฎเชพเช‚ เชชเซเชฐเซ‹เชชเชฐเซเชŸเซ€เช เชฎเชพเชคเซเชฐ เชเช• เชœ เชตเชพเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชคเซ‡ เชชเช›เซ€ เชคเซ‡เช“ เชซเซ‡เชฐเชซเชพเชฐ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚. เชชเชนเซ‡เชฒเชพเช‚, เชตเซเชฏเช•เซเชคเชฟเช—เชค เชตเชฐเซเช— เช—เซเชฃเชงเชฐเซเชฎเซ‹เชจเซ‡ เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชคเชฎเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เชคเชฎเชพเชฎ เชตเชฐเซเช— เช—เซเชฃเชงเชฐเซเชฎเซ‹ เชฎเชพเชŸเซ‡ เช† เชฎเซ‹เชก เชšเชพเชฒเซ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชตเชฐเซเช— เชธเซเชคเชฐเซ‡ "เชฎเชพเชคเซเชฐ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡" เชงเซเชตเชœเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชฅเซ€ เชตเชฐเซเช—เชฎเชพเช‚ เช—เซเชฃเชงเชฐเซเชฎเซ‹เชจเชพ เช—เชคเชฟเชถเซ€เชฒ เช‰เชฎเซ‡เชฐเชฃเชจเซ‡ เชชเชฃ เช…เชตเชฐเซ‹เชงเซ‡ เช›เซ‡. เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชตเชฐเซเช—เชจเซ€ เชชเซ‹เชธเซเชŸ { เชชเชฌเซเชฒเชฟเช• เชซเช‚เช•เซเชถเชจ __เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸ( เชœเชพเชนเซ‡เชฐ เชถเชฌเซเชฆเชฎเชพเชณเชพ $title, เชœเชพเชนเซ‡เชฐ เชฒเซ‡เช–เช• $author, ) {} } $post = เชจเชตเซ€ เชชเซ‹เชธเซเชŸ(/* โ€ฆ */); $post->เช…เชœเซเชžเชพเชค = 'เช–เซ‹เชŸเซเช‚'; // เชญเซ‚เชฒ: เชกเชพเชฏเชจเซ‡เชฎเชฟเช• เชชเซเชฐเซ‹เชชเชฐเซเชŸเซ€ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชคเซ€ เชจเชฅเซ€ เชชเซ‹เชธเซเชŸ::$เช…เชœเซเชžเชพเชค
  • เชตเชฐเซเช—เชฎเชพเช‚ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพเชจเซ‡ เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ (เชœเซ‡เชฎ เช•เซ‡ เช‰เชชเชฐเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ "เชชเซ‹เชธเซเชŸ->เช…เชœเซเชžเชพเชค"). PHP 9.0 เชฎเชพเช‚, เชตเชฐเซเช—เชฎเชพเช‚ เชฎเซ‚เชณ เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เช—เซเชฃเชงเชฐเซเชฎเซ‹เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชฅเซ€ เชญเซ‚เชฒ (ErrorException) เชฅเชถเซ‡. เชตเชฐเซเช—เซ‹ เช•เซ‡ เชœเซ‡ เชชเซเชฐเซ‹เชชเชฐเซเชŸเซ€เช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ __get เช…เชจเซ‡ __set เชชเชฆเซเชงเชคเชฟเช“ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เช…เชฅเชตเชพ stdClass เชฎเชพเช‚ เช—เชคเชฟเชถเซ€เชฒ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เชฏเชฅเชพเชตเชค เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เชถเซ‡, เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเซ‡ เช›เซเชชเชพเชฏเซ‡เชฒเซ€ เชญเซ‚เชฒเซ‹เชฅเซ€ เชฌเชšเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชตเชฟเชฆเซเชฏเชฎเชพเชจ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เชธเชพเชฅเซ‡ เชฎเชพเชคเซเชฐ เช—เชฐเซเชญเชฟเชค เช•เชพเชฐเซเชฏ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชœเซ‚เชจเชพ เช•เซ‹เชกเชจเซ‡ เช•เชพเชฐเซเชฏเชฐเชค เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡, "#[AllowDynamicProperties]" เชตเชฟเชถเซ‡เชทเชคเชพ เชชเซเชฐเชธเซเชคเชพเชตเชฟเชค เช›เซ‡, เชœเซ‡ เช—เชคเชฟเชถเซ€เชฒ เช—เซเชฃเชงเชฐเซเชฎเซ‹เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
  • เชญเซ‚เชฒเชจเชพ เชธเชฎเชฏเซ‡ เชธเซเชŸเซ‡เช• เชŸเซเชฐเซ‡เชธ เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚ เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ€. เชœเซเชฏเชพเชฐเซ‡ เชฅเชคเซ€ เชญเซ‚เชฒเซ‹ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เช†เชชเชฎเซ‡เชณเซ‡ เชคเซƒเชคเซ€เชฏ-เชชเช•เซเชท เชธเซ‡เชตเชพเช“เชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‡ เชŸเซเชฐเซ…เช• เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡ เชœเชพเชฃ เช•เชฐเซ‡ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เชšเซ‹เช•เซเช•เชธ เชฎเชพเชนเชฟเชคเซ€ เช•เชพเชชเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชŸเซเชฐเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเซเชธเชจเซ‡ เชฌเชพเช•เชพเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡เชฎเชพเช‚ เชฏเซเชเชฐเชจเชพเชฎ, เชชเชพเชธเชตเชฐเซเชก เช…เชจเซ‡ เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซ‡เชจเซเชŸ เชตเซ‡เชฐเชฟเชเชฌเชฒเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชซเช‚เช•เซเชถเชจ เชŸเซ‡เชธเซเชŸ ($foo, #[\SensitiveParameter] $password, $baz ) { เชฅเซเชฐเซ‹ เชจเซเชฏเซ‚ เชเช•เซเชธเซ‡เชชเซเชถเชจ('Error'); } เชŸเซ‡เชธเซเชŸ('foo', 'เชชเชพเชธเชตเชฐเซเชก', 'baz'); เชœเซ€เชตเชฒเซ‡เชฃ เชญเซ‚เชฒ: เชจ เชชเช•เชกเชพเชฏเซ‡เชฒ เช…เชชเชตเชพเชฆ: test.php เชฎเชพเช‚ เชญเซ‚เชฒ:8 เชธเซเชŸเซ‡เช• เชŸเซเชฐเซ‡เชธ: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} test.php เชฎเชพเช‚ เชซเซ‡เช‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช‘เชจเชฒเชพเช‡เชจ 8
  • "${var}" เช…เชจเซ‡ ${(var)}" เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชถเชฌเซเชฆเชฎเชพเชณเชพเช“เชฎเชพเช‚ เชฌเชฆเชฒเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพเชจเซ‡ เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ "{$var}" เช…เชจเซ‡ "$var" เช…เชตเซ‡เชœเซ€ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เชœเชพเชณเชตเซ€ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡: "เชนเซ‡เชฒเซ‹ {$world}"; เช“เช•เซ‡ "เชนเซ‡เชฒเซ‹ $world"; เช“เช•เซ‡ "เชนเซ‡เชฒเซ‹ ${world}"; เชจเชพเชชเชธเช‚เชฆ: เชถเชฌเซเชฆเชฎเชพเชณเชพเช“เชฎเชพเช‚ ${} เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡
  • เช†เช‚เชถเชฟเช• เชฐเซ€เชคเซ‡ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช•เซ‰เชฒเซ‡เชฌเชฒเซเชธ เช•เซ‡ เชœเซ‡เชจเซ‡ "call_user_func($callable)" เชฆเซเชตเชพเชฐเชพ เช•เซ‰เชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชคเซ‡ เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชชเชฐเช‚เชคเซ "$callable()": "self::method" "parent::method" "เชธเซเชฅเชฟเชฐ :: เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช•เซ‰เชฒเชฟเช‚เช—เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชคเชพ เชจเชฅเซ€. เชชเชฆเซเชงเชคเชฟ" ["เชธเซเชต", "เชชเชฆเซเชงเชคเชฟ"] ["เชฎเชพเชคเชพเชชเชฟเชคเชพ", "เชชเชฆเซเชงเชคเชฟ"] ["เชธเซเชฅเชฟเชฐ", "เชชเชฆเซเชงเชคเชฟ"] ["เชซเซ‚", "เชฌเชพเชฐ::เชชเชฆเซเชงเชคเชฟ"] [เชจเชตเซ€ เชซเซ‚, "เชฌเชพเชฐ: : เชชเชฆเซเชงเชคเชฟ" "]
  • เชธเซเชฅเชพเชจเชฟเช•-เชธเซเชตเชคเช‚เชคเซเชฐ เช•เซ‡เชธ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฃ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚. strtolower() เช…เชจเซ‡ strtoupper() เชœเซ‡เชตเชพ เช•เชพเชฐเซเชฏเซ‹ เชนเชตเซ‡ เชนเช‚เชฎเซ‡เชถเชพ ASCII เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚ เช…เช•เซเชทเชฐเซ‹เชจเชพ เช•เซ‡เชธเชจเซ‡ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฒเซ‹เช•เซ‡เชฒเชจเซ‡ "C" เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹