แแ แแ แฌแแแก แแแแแแแแ แแแแก แจแแแแแ, แฌแแ แแแแแแแแแ แแงแ PHP 8.2 แแ แแแ แแแแ แแแแก แแแแก แแแแแจแแแแ. แแฎแแแ แคแแแแแแ แแแแชแแแก แแฎแแแ แคแฃแแฅแชแแแแแก แกแแ แแแก, แแกแแแ แ แแแแแแแแ แชแแแแแแแแก, แ แแแแแแช แแ แฆแแแแก แแแแกแแแแแแแแก.
แซแแ แแแแแ แแแฃแแฏแแแแกแแแแแ PHP 8.2-แจแ:
- แแแแแขแแแฃแแแ แแแแกแแก แแฎแแแแ แฌแแแแแฎแแแแแ แแแแแจแแแแก แจแแกแแซแแแแแแแ. แแกแแ แแแแกแแแจแ แแแแกแแแแแแก แแแงแแแแแ แจแแกแแซแแแแแแแ แแฎแแแแ แแ แแฎแแ, แ แแก แจแแแแแแแช แแกแแแ แแ แแฅแแแแ แฎแแแแแกแแฌแแแแแ แชแแแแแแแแกแแแแก. แแแ แ, แชแแแแแฃแแ แแแแกแแก แแแแกแแแแแ แจแแแซแแแแแแ แแแแแจแแฃแแแงแ แแฎแแแแ แฌแแแแแฎแแแ, แแแแ แแ แแฎแแ แแฅแแแ แจแแแแซแแแแ แฉแแ แแแ แแก แ แแแแแ แแ แแแ แแฃแแแ แงแแแแ แแแแกแแก แแแแกแแแแกแแแแก. แแแแกแแก แแแแแแ "readonly" แแ แแจแแก แแแแแแแแ แแกแแแ แแแแแแแก แแแแกแจแ แแแแกแแแแแแก แแแแแแแฃแ แแแแแขแแแแก. readonly class Post { public แคแฃแแฅแชแแ __construct( public string $title, public แแแขแแ แ $author, ) {} } $post = new post(/* โฆ */); $post->unknown = 'แแ แแกแฌแแ แ'; // แจแแชแแแแ: แแแแแแแฃแ แ แแแแกแแแแก แจแแฅแแแ แจแแฃแซแแแแแแแ แแแกแขแ::$แฃแชแแแแ
- แแแแแขแแแฃแแแ แชแแแแแฃแแ แขแแแแแ "true", "false" แแ "null", แ แแแแแแกแแช แจแแฃแซแแแแ แแแแฆแแ แแฎแแแแ แแ แแ แแแฅแแแแ แแแแจแแแแแแแ แแ แแแแแแงแแแแแ, แแแแแแแแแ, แคแฃแแฅแชแแแก แแแกแแแ แฃแแแแแแ แจแแชแแแแแก แแแกแ แฃแแแแแก แแ แแจแแ แแ แชแแ แแแแ แแแแจแแแแแแแแ. แแแ แ "true", "false" แแ "null" แจแแแซแแแแแแ แแฎแแแแ แกแฎแแ แขแแแแแแแ แแ แแแ แแแแแงแแแแแ (แแแแแแแแแ, "string|false"), แแแแ แแ แแฎแแ แแแแ แแแแแงแแแแแ แจแแกแแซแแแแแแแ แชแแแแ: แคแฃแแฅแชแแ แงแแแแแแแแกFalse(): false { return false ; }
- แฃแแ แฃแแแแแงแแคแแแแ แกแแแกแแขแแฃแ แ แแแ แแแแขแ แแแแก แแแคแแแขแแ แแก แจแแกแแซแแแแแแแ แกแขแแแแก แแแแแแก แแแแแแแแแแจแ แจแแชแแแแแก แแ แแก. แแแ แแแแฃแแ แแแคแแ แแแชแแแก แแแแฆแแแ แจแแแซแแแแ แกแแญแแ แ แแแฎแแแก, แ แแแแกแแช แแแคแแ แแแชแแ แแแจแแแแฃแแ แจแแชแแแแแแแก แจแแกแแฎแแ แแแขแแแแขแฃแ แแ แแแแแแแแแ แแแกแแแ แแฎแแ แแก แกแแ แแแกแแแแ, แ แแแแแแแช แแแแแขแ แแแแแแ แแ แแแแแแแแก แแ แแชแแแแแแแ แแแแแแแแแ แแแก แแแ แจแแกแแฎแแ. แแแแแแแแแ, แจแแแแซแแแแ แแแแแ แแชแฎแแ แแแแแแแแ แแกแแแ แแแ แแแแขแ แแแ, แ แแแแแแแช แแแแชแแแก แแแแฎแแแ แแแแแก แกแแฎแแแแแก, แแแ แแแแแกแ แแ แแแ แแแแก แชแแแแแแแก. แคแฃแแฅแชแแแก แขแแกแขแ ( $foo, #[\SensitiveParameter] $แแแ แแแ, $baz ) { แแแแแงแแ แแ แแฎแแแ แแแแแแแแแแกแ ('แจแแชแแแแ'); } test('foo', 'แแแ แแแ', 'baz'); แกแแแแแแกแฌแแ แ แจแแชแแแแ: แแแฃแแแแแแแแ แแแแแแแแแแกแ: แจแแชแแแแ test.php:8 แแแกแขแแก แแแแแ: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {แแแแแแ แ} แฉแแแแแแฃแแแ test.php 8 แกแขแ แแฅแแแแ
- แแแแแแแ แแฃแแแ แแแฎแแกแแแแแแแแแจแ แแฃแแแแแแแแก แแแแกแแแฆแแ แ (แแแจแแแแแแกแแแ, แแแแแก แฎแแแแฎแแแ แแแแแงแแแแแแก แแแฅแแแแแแ). แแแจแแ-แแแแกแแแแจแ แแแแกแแแฆแแ แฃแ แแฃแแแแแแแแ แฌแแแแแ แจแแกแแซแแแแแแแ แแแแกแแก แแแจแแแแแแ, แ แแแแแแช แแงแแแแแก แแแจแแแก (แแแแ แแ แแ แ แแแจแแ-แแแแกแแแแก แกแแฎแแแแก แแแจแแแแแแ). แแแแกแแแ Foo { public const CONSTANT = 1; public function bar(): int { return self::CONSTANT; // Fatal error } } class Bar { use Foo; } var_dump(Bar::CONSTANT); // 1
- แแแแแขแแแฃแแแ แขแแแแแแก แแแแฃแกแขแแแแก แจแแกแแซแแแแแแแ แแแแชแแแแแแแแฃแ แแแ แแแแฃแ แคแแ แแแจแ (DNF, Disjunctive Normal Form), แ แแช แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแจแแ แแ แขแแแแแแก แแแแ แแแแแแแ (แแ แ แแ แแแขแ แขแแแแก แแแแแฅแชแแแแ) แแ แขแแแแแแก แแแแแแแแแ (แขแแแแแ, แ แแแแแแ แแแแจแแแแแแแแแ แ แแแแแแแแแก แฅแแแแแแแแ. แขแแแแแ แแ แแแ แแฃแแแ). class Foo { public function bar((A&B)|null $entity) { if ($entity === null) { return null; } แแแแ แฃแแแแ $entity; }}
- แจแแแแแแแแแแแฃแแแ แแฎแแแ แแแคแแ แแแแแ โแจแแแแฎแแแแแแโ แคแฃแแฅแชแแแแแแ แแ แแแแกแแแแ แคแกแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแกแ แแ แแแแแแแ แแแแแแก แแแแแ แแ แแแแกแแแแก. แแแแฃแแ แฃแแ แฃแแแแแงแแคแก แแแแแฅแขแแ แแ แแแแขแแ แแแฃแ แแแขแแ แคแแแกแก, แกแแจแฃแแแแแแก แแแซแแแแ แแแ แฉแแแ แกแฎแแแแแกแฎแแ แซแ แแแแแ แคแกแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแ แแแแกแแแแก, แแแ แจแแ แแก แแ แแแขแแแ แแคแแแจแ แแแแแกแแงแแแแแแแ แจแแกแแคแแ แแกแ แแ แฃแแ แฃแแแแแงแแคแก แแแแฎแแแ แ แคแฃแแฅแชแแแแก, แแแแแแแแแ, แแแกแแแแแแก แแ แกแขแ แแฅแแแแแแก แจแแแแฎแแแแแ แจแแ แแแแกแแแแก, แแแกแแแแก แจแแแแฎแแแแแแ แแแแแแจแแแแก แแ แฉแแแแกแแแแก. แ แแแแแแแแ แแแแแ แแขแแ แแก แแ แแแ แแฃแแ แแแแแงแแแแแ แกแแแฃแแแ แแแแแฃแแแแแแแ แกแแฎแแแแฌแแคแแกแแแ. $rng = $is_production ? new 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}"; OK "แแแแแ แฏแแแ $world"; OK "แแแแแ แฏแแแ ${world}"; แแแซแแแแแแฃแแแ: ${}-แแก แแแแแงแแแแแ แกแขแ แแฅแแแแแจแ แแแซแแแแแแฃแแแ
- แแแซแแแแแแฃแแแ แแแฌแแแแแ แแ แแฎแแ แแแญแแ แแแ แแแแแซแแฎแแแแแ, แ แแแแแแ แแแแแซแแฎแแแ แจแแกแแซแแแแแแแ "call_user_func($callable)"-แแ, แแแแ แแ แแ แแ แแก แแฎแแ แแแญแแ แแแ แแแแแซแแฎแแแแก แกแแฎแแ "$callable()": "self::method" "parent::method" "static::method" ["self", "method"] "["แแจแแแแแ", "แแจแแแแแ", "metod":F. แคแฃ, "แแแ แ:: แแแแแแ"]
- error_log_mode แแแ แแฅแขแแแ แแแแแแขแ แแแ แแแแขแ แแแก, แ แแช แกแแจแฃแแแแแแก แแแซแแแแ แแแแกแแแฆแแ แแ แจแแชแแแแแแแก แแฃแ แแแแจแ แฌแแแแแแก แ แแแแแ.
แฌแงแแ แ: opennet.ru