Новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π―Π΄Ρ€ΠΎ PHP

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Pipe

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ |>.

<?php

$result
= "Hello World" |> strlen(...);
print
$result . PHP_EOL; // Prints "11"

Замыкания Π² константных выраТСниях

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ статичСских Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΉ Π² константных выраТСниях. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ выраТСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ стандартный синтаксис объявлСния Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ синтаксис с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ пСрвоклассныС Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Closure. БтатичСскиС замыкания ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².
  • Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для свойств ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².
  • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… констант, констант Π² пространствах ΠΈΠΌΡ‘Π½ ΠΈ констант классов.

Атрибут #[\NoDiscard]

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ NoDiscard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ (void), которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ трСбования ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ (void) Π½Π΅ влияСт Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подавляСт прСдупрСТдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ #[\NoDiscard], ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ диагностичСскиС сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ внСшниС IDE ΠΈΠ»ΠΈ инструмСнты статичСского Π°Π½Π°Π»ΠΈΠ·Π°.

<?php

#[\NoDiscard]
function
concat(string $a, string $b): string {
return
$a . $b;
}

// ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ функция concat(), трСбуСтся Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ,
// Π»ΠΈΠ±ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ (void) ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ xxx.php.
concat("a", "b");

// ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ выдаётся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
$results = concat("a", "b");

// ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ выдаётся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ инструкция (void) Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄ прСдупрСТдСния.
(void)concat("a", "b");

Атрибуты констант

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ нацСливания Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π½Π° константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π½Π΅ классов выраТСниями Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ const MY_CONST = 1; ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π½Π° этапС компиляции. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ β€” define('MY_CONST', 1);, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Атрибут Deprecated Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° константы.

Атрибут #[\DelayedTargetValidation]

Новый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ DelayedTargetValidation подавляСт ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° этапС компиляции Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ядро ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² нСдопустимым цСлям. ΠŸΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ядро ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π²ΠΎ врСмя выполнСния Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ReflectionAttribute::newInstance().

Атрибут #[\Override] для свойств

Атрибут Override Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° свойства.

АсиммСтричная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ статичСских свойств

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ асиммСтричной видимости ΠΏΡ€ΠΈ объявлСнии статичСских свойств.

Врассировки стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΈ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

Π€Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ошибки Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ трассировку стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

ОбъявлСниС ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств Π² конструкторС

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ объявлСниС ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄ΠΎ свойств класса.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² Π² константных выраТСниях

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π² константных выраТСниях.

<?php

const T1 = (int) 0.3; // РаньшС: "Fatal error: Constant expression contains invalid operations"
print T1 . PHP_EOL; // Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ "0"

Ѐункция clone

Языковая конструкция clone Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ стала Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния свойств Π²ΠΎ врСмя клонирования Ρ‡Π΅Ρ€Π΅Π· Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $withProperties.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ cURL

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΠ±Ρ‰ΠΈΡ… дСскрипторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ PHP-запросами, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ рСсурсы ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ установку соСдинСний.

Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curl_getinfo() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ констант CURLINFO_USED_PROXY (трСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libcurl >= 8.7.0), CURLINFO_HTTPAUTH_USED ΠΈ CURLINFO_PROXYAUTH_USED (libcurl >= 8.12.0). ΠŸΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ curl_getinfo() массива Ρ‚Π° ΠΆΠ΅ информация доступна Π² элСмСнтах с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ "used_proxy", "httpauth_used" ΠΈ "proxyauth_used". ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° CURLINFO_USED_PROXY ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ноль, Ссли прСдыдущая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· прокси, ΠΈΠ»ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· прокси. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ CURLINFO_HTTPAUTH_USED ΠΈ CURLINFO_PROXYAUTH_USED ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ маски, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ HTTP ΠΈ прокси Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ запросС. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния содСрТатся Π² описании констант сСмСйства CURLAUTH_*.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ cURL-ΠΎΠΏΡ†ΠΈΡŽ CURLOPT_INFILESIZE_LARGE β€” бСзопасная Π·Π°ΠΌΠ΅Π½Π° константы CURLOPT_INFILESIZE. Π’ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… систСмах опция CURLOPT_INFILESIZE для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 32-разрядноС Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° 2,0 Π“ΠΈΠ‘, Π΄Π°ΠΆΠ΅ Π² 64-разрядных систСмах. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° CURLOPT_INFILESIZE_LARGE ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ наибольшСС цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ систСма.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ значСния CURLFOLLOW_OBEYCODE, CURLFOLLOW_FIRSTONLY ΠΈ CURLFOLLOW_ALL для ΠΎΠΏΡ†ΠΈΠΈ CURLOPT_FOLLOWLOCATION Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curl_setopt(). ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° CURLFOLLOW_OBEYCODE для Π±ΠΎΠ»Π΅Π΅ строгого соблюдСния ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ, Ссли ΠΎΠ½ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° CURLFOLLOW_FIRSTONLY слСдуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, поэтому ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° прСкратится, Ссли Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ появятся ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹Π΅ пСрСнаправлСния. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° CURLFOLLOW_ALL эквивалСнтна установкС константС CURLOPT_FOLLOWLOCATION значСния true.

Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curl_getinfo() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ константы CURLINFO_CONN_ID (трСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libcurl >= 8.2.0). ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ соСдинСния, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ cURL выполнял ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ константа ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π² прилоТСниях Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ PHP трСбуСтся Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎ ΠΆΠ΅ соСдинСниС ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡƒΠ»Π° соСдинСний. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ curl_getinfo() массива Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ доступно Π² элСмСнтС с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ "conn_id".

Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curl_getinfo() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ константы CURLINFO_QUEUE_TIME_T (трСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libcurl >= 8.6.0). ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ врСмя Π² микросСкундах, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ запрос ΠΏΡ€ΠΎΠ²Ρ‘Π» Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ соСдинСний Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libcurl ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ доступно ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ константы CURLINFO_QUEUE_TIME_T Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ option Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curl_getinfo().

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΠΏΡ†ΠΈΠΈ CURLOPT_SSL_SIGNATURE_ALGORITHMS, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ подписи для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ DOM

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ свойство Dom\Element::$outerHTML.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ свойство $children Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ интСрфСйса Dom\ParentNode.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ EXIF

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Exif-Ρ‚Π΅Π³ΠΎΠ² OffsetTime*.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° HEIF/HEIC.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π»Π°Π³ FILTER_THROW_ON_FAILURE для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π€Π»Π°Π³ заставит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ. Новый Ρ„Π»Π°Π³ нСльзя ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ„Π»Π°Π³ΠΎΠΌ FILTER_NULL_ON_FAILURE; ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ΠΈ PHP выбросит ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константы класса: NumberFormatter::CURRENCY_ISO, NumberFormatter::CURRENCY_PLURAL, NumberFormatter::CASH_CURRENCY ΠΈ NumberFormatter::CURRENCY_STANDARD для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² чисСл, связанных с Π²Π°Π»ΡŽΡ‚ΠΎΠΉ.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Locale::addLikelySubtags() ΠΈ Locale::minimizeSubtags() для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вСроятных Ρ‚Π΅Π³ΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ класс IntlListFormatter для форматирования, упорядочивания ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ списка элСмСнтов с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ локалью: ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ IntlListFormatter::TYPE_AND, IntlListFormatter::TYPE_OR, IntlListFormatter::TYPE_UNITS, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ IntlListFormatter::WIDTH_WIDE, IntlListFormatter::WIDTH_SHORT, IntlListFormatter::WIDTH_NARROW. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ начиная с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ICU 67.

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ PDO_Sqlite

Π’ класс Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константу Pdo\Sqlite::ATTR_BUSY_STATEMENT.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константы класса: Pdo\Sqlite::ATTR_EXPLAIN_STATEMENT, Pdo\Sqlite::EXPLAIN_MODE_PREPARED, Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN, Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN_QUERY_PLAN.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ соСдинСния Pdo\Sqlite::ATTR_TRANSACTION_MODE с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ значСниями Pdo\Sqlite::TRANSACTION_MODE_DEFERRED, Pdo\Sqlite::TRANSACTION_MODE_IMMEDIATE ΠΈ Pdo\Sqlite::TRANSACTION_MODE_EXCLUSIVE для настройки Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполнится транзакция ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° beginTransaction().

БСссии

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_set_cookie_params(), session_get_cookie_params() ΠΈ session_start() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡ "partitioned" для сСкционирования Π΄Π°Π½Π½Ρ‹Ρ… cookie.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ SOAP

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ пСрСчислСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ SoapClient::__getTypes().

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° xml:lang для элСмСнта Reason Text Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ SOAP 1.2.

Π’ сигнатуру ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² SoapFault::__construct() ΠΈ SoapServer::fault() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lang. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ совмСстимости с SOAP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Ѐункция mail() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ процСсса sendmail ΠΈ распознаёт Π΅Π³ΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях PHP Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false. РаньшС эти ошибки ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ. ИзмСнСниС Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ транспорт sendmail.

Ѐункция getimagesize() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HEIF/HEIC.

Ѐункция getimagesize() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SVG, Ссли установили Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ext-libxml. Аналогично, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ image_type_to_extension() ΠΈ image_type_to_mime_type() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚ΠΎΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ константу IMAGETYPE_SVG.

Массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ возвращаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ getimagesize(), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ содСрТит Π΄Π²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ записи: "width_unit" ΠΈ "height_unit", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Π² ΠΊΠ°ΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² пиксСлях β€” px. НС Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ направлСния выраТаСтся Π² сантимСтрах β€” cm, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π² пиксСлях β€” px.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ setcookie() ΠΈ setrawcookie() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡ "partitioned".

ΠœΠΎΠ΄ΡƒΠ»ΡŒ URI

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ URI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ прСдоставляСт инструмСнты для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ URI-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ URL-адрСсов ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ стандартов RFC 3986 ΠΈ WHATWG.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ XSL

АргумСнт namespace Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… XSLTProcessor::getParameter(), XSLTProcessor::setParameter() ΠΈ XSLTProcessor::removeParameter() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ обрабатываСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈ Π½Π΅ игнорируСтся ΠΊΠ°ΠΊ пустой. АргумСнт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ name ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π΅ Π² Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠšΠ»Π°Ρ€ΠΊΠ° ΠΈΠ»ΠΈ QName-ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ значСния пространство ΠΈΠΌΡ‘Π½ извлСкаСтся ΠΈΠ· прСфикса ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° href самого ΠΈΠΌΠ΅Π½ΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Zlib

Ѐункция flock() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ zlib. РаньшС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»ΠΈΡΡŒ ошибкой.

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы