ื ืึธื ืึท ืืึธืจ ืคืื ืึทื ืืืืืงืืื ื, ืื ืืขืืืื ื ืคืื ืื PHP 8.2 ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื ืืื ืืขืืืขื ืืขืจืืื ืื. ืื ื ืืึทืข ืฆืืืืึทื ืืืื ืึท ืกืขืจืืข ืคืื โโโโื ืืึท ืคึฟืขืึดืงืืืื, ืืื ืืขืืื ื ืืื ืขืืืขืืข ืขื ืืขืจืื ืืขื ืืืึธืก ืืจืขืื ืงืึทืืคึผืึทืืึทืืืืึทืื.
ืฉืืืกื ืืืคึผืจืืืืืึทื ืฅ ืืื PHP 8.2:
- ืฆืืืขืืขืื ืื ืคืืืืงืืื ืฆื ืฆืืืื ืึท ืงืืึทืก ืืื ืืืืื ืืืืขื ืขื. ืคึผืจืึธืคึผืขืจืืืขืก ืืื ืึทืืึท ืงืืืกื ืงืขื ืขื ืืืื ืืึทืฉืืืื ืืืืื ืึทืืึธื, ื ืึธื ืืืึธืก ืืื ืงืขื ืขื ื ืื ืืืื ืืขืืืื. ืืื ืึทืืขืจ, ืืืื ืงืืึทืก ืคึผืจืึธืคึผืขืจืืืขืก ืงืขื ืืืื ืื ืืขืฆืืืื ื ืืืืื ืคึฟืึทืจ ืืืืขื ืขื, ืึธืืขืจ ืืืฆื ืืืจ ืงืขื ืขื ืืขืื ืืขื ืืึธืืข ืคึฟืึทืจ ืึทืืข ืงืืึทืก ืคึผืจืึธืคึผืขืจืืืขืก ืืื ืึทืืึธื. ืกืคึผืขืฆืืคืืฆืืจื ืื "ืืืืขื ืขื" ืคืึธื ืืื ืื ืงืืึทืก ืืืจืื ืืืื ืืืึทืงืก ืคึผืจืึทืคึผืขืจืืื ืฆื ืืืื ืืืกืืฃ ืืื ืึทืืืงืึทืืื ืฆื ืื ืงืืึทืก. ืืืืขื ืขื ืืืืื ืงืืึทืก ืคึผืึธืกื {ืคึผืืืืืง ืคึฟืื ืงืฆืืข __ืงืึทื ืกืืจืึทืงื (ืคืืืืืง ืฉืืจืืงื $ ืืืื, ืขืคื ืืืขื ืืืืจ $ ืืืืจ,) {}} $ ืคึผืึธืกื = ื ืืึท ืคึผืึธืกืื (/* โฆ */); $post->unknown = 'ืคืึทืืฉ'; // ืืขืืช: ืงืขื ืขื ื ืื ืืึทืื ืืื ืึทืืืฉ ืคืึทืจืืึธื ืคึผืึธืกืื::$ืืืืืึทืงืึทื ื
- ืฆืืืขืืืืื ืืึทืืื ืืขืจ ืืืืคึผืก "ืืืช", "ืคืึทืืฉ" ืืื "ื ืื", ืืืึธืก ืงืขื ืขื ื ืขืืขื ืืืืื ืืืื ืืืืืืง ืืืขืจื ืืื ืืขื ืขื ืืขื ืืฆื, ืืืฉื, ืฆื ืฆืืจืืงืงืืืขื ืึท ืคึฟืื ืงืฆืืข ืืื ืึท ืืขืืช ืืขืจืืึทื ืืืฉืึทื ืคืึธื ืึธืืขืจ ืึท ืืืืืืง ืืืขืจื. ืืื ืึทืืขืจ, "ืืืช", "ืคืึทืืฉ" ืืื "ื ืื" ืงืขื ืืืื ืืขืืืืื ื ืืืืื ืืื ืงืึทื ืืืฉืึทื ืืงืฉืึทื ืืื ืื ืืขืจืข ืืืืคึผืก (ืืืฉื, "ืฉืืจืืงื|ืคืึทืืฉ"), ืึธืืขืจ ืืืฆื ืืื ืงืขื ืขื ืืืื ืืขืืืืื ื ืกืขืคึผืขืจืึทืืื: ืคึฟืื ืงืฆืืข ืฉืืขื ืืืง ืคืึทืืฉ (): ืคืึทืืฉ { ืฆืืจืืงืงืืืขื ืคืึทืืฉ ; }
- ืคึผืจืึธืืืืืขืก ืื ืคืืืืงืืื ืฆื ืคืืืืขืจ ืฉืคึผืืจืขืืืืืง ืคึผืึทืจืึทืืขืืขืจืก ืืื ืืขืจ ืึธื ืืืืื ืฉืคึผืืจ ืจืขืืืืืึทื ืืขืฉืึทืก ืึท ืืขืืช. ืืืกืฉืขืคึผื ืืืืขืจ ืืื ืคึฟืึธืจืืึทืฆืืข ืงืขื ืืืื ื ืืืืืง ืืืขื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืขืจืจืึธืจืก ืืืึธืก ืคึผืึทืกืืจื ืืื ืืืืืึธืืึทืืืฉ ืืขืฉืืงื ืฆื ืืจืื-ืคึผืึทืจืืื ืืึทืืื ืื ืืก ืืืึธืก ืฉืคึผืืจ ืคึผืจืึธืืืขืืก ืืื ืืืืืืืื ืืขืืืขืืึธืคึผืขืจืก ืืืขืื ืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืงืขื ืขื ืืืกืฉืืืกื ืคึผืึทืจืึทืืขืืขืจืก ืืืึธืก ืึทืจืืึทื ื ืขืืขื ืืกืขืจื ืึทืืขืก, ืคึผืึทืกืืืขืจืื ืืื ืกืืืืืืข ืืืขืจืืึทืืึทืื ืคืื ืืจืืืกืื ื. ืคึฟืื ืงืฆืืข ืืขืกื ($ ืคืึธืึธ, #[\ SensitiveParameter] $ ืคึผืึทืจืึธื, $ ืืึทื) {ืืืึทืจืคื ื ืืึท ืืืกื ืขื ('ืืขืืช'); } test('foo', 'password', 'baz'); ืคืึทืืึทื ืืขืืช: ืื ืงืึทืฉื ืืืกื ืขื: ืืขืืช ืืื test.php:8 ืกืืึทืง ืฉืคึผืืจ: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {ืืืืคึผื} ืืจืื ืืขืืืืจืคื ืืื test.php ืืืืฃ ืฉืืจื 8
- ืืขืจืืืืื ืฆื ืืขืคืื ืืจื ืงืึทื ืกืืึทื ืฅ ืืื ืืจืืืฅ (ืืจืืื, ืึท ืืขืงืึทื ืืืึทื ืคึฟืึทืจ ืจืืืืื ื ืงืึธื). ืงืึทื ืกืืึทื ืฅ ืืืคืืื ื ืืื ืึท ืืจืืื ืงืขื ืขื ืืืื ืึทืงืกืขืกื ืืืจื ืื ืงืืึทืก ืืืึธืก ื ืืฆื ืื ืืจืืื (ืึธืืขืจ ื ืืฉื ืืืจื ืื ืืจืืื ื ืึธืืขื). ืืจืืื ืคืึธืึธ {ืฆืืืืจ ืงืึธื ืกืืึทื ื ืงืขืกืืืืขืจืืืง = 1; ืฆืืืืจ ืคึฟืื ืงืฆืืข ืืึทืจ (): int { ืฆืืจืืงืงืืืขื ืืื:: CONSTANT; // ืคืึทืืึทื ืืขืืช } } ืงืืึทืก ืืึทืจ {ื ืืฆื ืคืึธืึธ; } ืืืึทืจ_ืืึทืืคึผ (ืืึทืจ:: CONSTANT); // 1
- ืฆืืืขืืขืื ืื ืคืืืืงืืื ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืืืืคึผืก ืืื ืื ืืืกืืืฉืื ืงืืืืืข ื ืึธืจืืึทื ืคืึธืจืขื (DNF, Disjunctive Normal Form), ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืคืึทืจืืื ืื ืื ืคืึทืจืืึทื ื ืคืื ืืืืคึผืก (ืืึทืืืื ื ืคืื ืฆืืืื ืึธืืขืจ ืืขืจ ืืืืคึผืก) ืืื ืื ืื ืืขืจืกืขืงืฉืึทื ืคืื ืืืืคึผืก (ืืืืคึผืก ืืืขืืขื ืก ืืืึทืืืขืก ืคืึทืื ืืื ืืขืจ ืขืืืขืืข ืืืืคึผืก ืกืืืืึทืืืืื ืืึทืกืื). ืงืืึทืก ืคืึธืึธ {ืคืืืืืง ืคึฟืื ืงืฆืืข ืืึทืจ ((ื&ื)|ื ืื $ ืขื ืืืื) {ืืืื ($ืขื ืืืื === ื ืึทื) {ืฆืืจืืง ื ืึทื; } ืฆืืจืืงืงืืืขื $ ืขื ืืืื; } }
- ื ื ืืึทืข ืคืึทืจืืขื ืืขืจืื ื "ืจืึทื ืืึธื" ืืื ืคืืจืืขืืืืื ืืื ืคืึทื ืืงืฉืึทื ื ืืื ืงืืืกื ืคึฟืึทืจ ืืืฉืขื ืขืจืืืืื ื ืคึผืกืขืืืืึธ-ืจืึทื ืืึธื ื ืืืขืจื ืืื ืกืืงืืืึทื ืกืื. ืืขืจ ืืึธืืืืข ืืื ืึทื ืึธืืืขืงื-ืึธืจืืขื ืืื ืฆืืืื ื, ืึทืืึทืื ืืืจ ืฆื ืืืืกืงืืืึทืื ืคืึทืจืฉืืืขื ืข ืขื ืืืฉืึทื ื ืคึฟืึทืจ ืืืฉืขื ืขืจืืืืื ื ืคึผืกืขืืืืึธ-ืจืึทื ืืึธื ื ืืืขืจื, ืึทืจืืึทื ืืขืจืขืื ื ืื ืคึผืึทืกืืง ืคึฟืึทืจ ื ืืฆื ืืื ืงืจืืคึผืืึธืืจืึทืคื, ืืื ืืื ืึทืืืืืืขืจื ืคืึทื ืืงืฉืึทื ื, ืืืฉื, ืคึฟืึทืจ ืจืึทื ืืึทืืื ืืืงืกืื ื ืขืจืืื ืืื ืกืืจืื ืืก, ืกืขืืขืงืืื ื ืืจืึทืค - ืืขื ืืข ืฉืืืกืืขื, ืกืืืืึทืืืืื ืืึทืก ื ืืฆื ืคืื ืขืืืขืืข ืืขื ืขืจืึทืืึธืจืก ืืื ืืืื ืืืืืขื ืข ืคืจืืึท ืฉืืึทื. $ืจื ื = $ืืื_ืคึผืจืึธืืืงืฆืืข? ื ืืึท ืจืึทื ืืึธื \ ืืึธืืึธืจ \ ืืืืขืจ () : ื ืืึท ืจืึทื ืืึธื \ ืืึธืืึธืจ \ ืื19937 (1234); $ ืจืึทื ืืึธืืืืขืจ = ื ืืึท ืจืึทื ืืึธื \ ืจืึทื ืืึธืืืืขืจ ($ ืจื ื); $ ืจืึทื ืืึธืืืืขืจ-> shuffleString ('ืคืึธืึธืืึทืจ');
- ืืืคึผืืึทืืขื ืึทื ืืึธืงืึทื-ืคืจืืึท ืคืึทื ืงืึทื ืืืขืจืืฉืึทื. ืคืึทื ืืงืฉืึทื ื ืืื 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" ืกืึทืืกืืืืืืฉืึทื ื ืืื ืจืืืืื ื. ืคึฟืึทืจ ืืืึทืฉืคึผืื: "ืืขืื {$ืืืขืื}"; ืืื "ืืขืื $ืืืขืื"; ืืื "ืืขืื ${ืืืขืื}"; ืืืคึผืจืืฉืืืืืื: ื ืืฆื ${} ืืื ืกืืจืื ืืก ืืื ืืืคึผืจืืฉืืืืืื
- ืืืคึผืจืืฉืืืืืื ืืืื ืืขืฉืืืฆื ืงืึทืืืึทืืืขืก ืืืึธืก ืงืขื ืขื ืืืื ืืขืจืืคื ืืืจื "call_user_func($callable)" ืึธืืขืจ ืืึธื ื ืื ืฉืืืฆื ืจืืคื ืืื ืื ืคืึธืจืขื ืคืื "$callable()": "ืืื :: ืืขืืึทื" "ืคืึธืืขืจ :: ืืขืืึทื" "ืกืืึทืืืง" :: ืืขืืึทื " ["ืืื", "ืืขืืึธื"] ["ืคืึธื", "ืืขืืึธื"] ["ืกืืึทืืืง", "ืืขืืึธื"] ["Foo", "Bar::method"] [ื ืืึท Foo, "Bar: :method" ]
- ืื error_log_mode ืืืจืขืงืืืื ืืื ืฆืืืขืืขืื ืฆื ืื ืกืขืืืื ืืก, ืึทืืึทืืื ื ืืืจ ืฆื ืืึทืฉืืืกื ืื ืึทืงืกืขืก ืืึธืืข ืฆื ืื ืืขืืช ืงืืึธืฅ.
ืืงืืจ: opennet.ru