ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΎΠΌΠ°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

КаТдая новая функция, класс, интСрфСйс, пСрСчислСниС ΠΈΠ»ΠΈ константа станСт ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибки Error ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ объявлСнии, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выбросит PHP, Ссли встрСтит Π² ΠΊΠΎΠ΄Π΅ объявлСниС с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, хотя Ρ€Π°Π·Π΄Π΅Π» Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ это Π² явной Ρ„ΠΎΡ€ΠΌΠ΅.

Π―Π΄Ρ€ΠΎ PHP

ИзмСнСниС повСдСния языковой конструкции exit()

ПовСдСниС языковой конструкции exit() ΠΈ Π΅Ρ‘ псСвдонима die() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ большС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ значСния с Ρ‚ΠΈΠΏΠΎΠΌ callable, Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ влияСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° strict_types ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкции declare ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ стандартныС прСобразования Ρ‚ΠΈΠΏΠΎΠ² вмСсто привСдСния нСцСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊ строкС.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° нСдопустимых Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ exit() ΠΈ die() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ TypeError.

РСкурсия ΠΏΡ€ΠΈ сравнСнии

ПоявлСниС рСкурсии ΠΏΡ€ΠΈ сравнСнии Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ Error вмСсто ошибки уровня E_ERROR.

НСпрямая модификация доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния свойств

ΠΠ΅ΠΏΡ€ΡΠΌΡƒΡŽ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния свойств Π²Π½ΡƒΡ‚Ρ€ΠΈ магичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° __clone() Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, присваиваниС ΠΏΠΎ ссылкС $ref = &$this->readonly Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния свойств Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΈ упустили Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Β«ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния свойств ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΒ».

ИзмСнСниС Ρ‚ΠΈΠΏΠ° констант

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ PHP_DEBUG ΠΈ PHP_ZTS Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ логичСскому Ρ‚ΠΈΠΏΡƒ bool. РаньшС константы ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΈ цСлочислСнному Ρ‚ΠΈΠΏΡƒ int.

Π”Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

Π”Π»ΠΈΠ½Ρƒ ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ, ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ tempnam(), ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ Π½Π° 13 Π±Π°ΠΉΡ‚ΠΎΠ². ΠžΠ±Ρ‰Π°Ρ Π΄Π»ΠΈΠ½Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ уровня ошибки E_STRICT

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ошибки E_STRICT ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π²ΠΈΠΆΠΎΠΊ PHP большС с Π½ΠΈΠΌ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° E_STRICT устарСла.

Випизация констант Π² классах ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ Ρ‚ΠΈΠΏ для констант своих классах:

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ рСсурсов Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Ряд рСсурсов (resource) пСрСнСсли Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (object). ЗначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-создатСли рСсурсов ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ провСряли Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ is_resource(), потрСбуСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡƒ false, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² описании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΈΠ½ΠΎΠ΅.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ модуля DBA Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Dba\Connection вмСсто рСсурсов (resource) dba_connection.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ODBC Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Odbc\Result вмСсто рСсурсов (resource) odbc_result.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ODBC Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Odbc\Connection вмСсто рСсурсов (resource) odbc_connection.

SOAP

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ прСдставили свойство SoapClient::$httpurl ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Soap\Url, Π° Π½Π΅ рСсурсом (resource) soap_url. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ is_resource() Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ is_resource($client->httpurl)) потрСбуСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ Π½Π° null Π²Ρ€ΠΎΠ΄Π΅ $client->httpurl !== null.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ прСдставили свойство SoapClient::$sdl ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Soap\Sdl, Π° Π½Π΅ рСсурсом (resource) soap_sdl. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ is_resource() Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ is_resource($client->sdl) потрСбуСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ Π½Π° null Π²Ρ€ΠΎΠ΄Π΅ $client->sdl !== null.

НовыС прСдупрСТдСния ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ прСдупрСТдСния ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… программирования, β€” ΠΊΠΎΠ³Π΄Π° Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ нСдопустимыС значСния.

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

Ѐункция curl_multi_select() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ timeout мСньшС 0 ΠΈΠ»ΠΈ большС значСния константы PHP_INT_MAX.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ imagejpeg(), imagewebp(), imagepng(), imageavif() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ quality ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Ѐункция imageavif() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ speed ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Ѐункция imagescale() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли ΡˆΠΈΡ€ΠΈΠ½Π° width ΠΈΠ»ΠΈ высота height Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π½Π΅Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.

Ѐункция imagescale() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ mode.

Ѐункция imagefilter() с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ IMG_FILTER_SCATTER Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ вычитания sub ΠΈΠ»ΠΈ добавлСния plus эффСкта Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π½Π΅Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ bind_textdomain_codeset(), textdomain(), d*gettext Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ domain ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ resourcebundle_get(), ResourceBundle::get() ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ смСщСниям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ResourceBundle Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

  • TypeError ΠΏΡ€ΠΈ нСдопустимых Ρ‚ΠΈΠΏΠ°Ρ… смСщСния
  • ValueError ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ пустой строки (string)
  • ValueError, Ссли цСлочислСнный индСкс Π½Π΅ помСщаСтся Π² 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ

ΠœΠ΅Ρ‚ΠΎΠ΄ IntlDateFormatter::__construct() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ locale ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ NumberFormatter::__construct() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ locale ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mb_encode_numericentity() ΠΈ mb_decode_numericentity() ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° map состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ… числСл (int), ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ функция mb_http_input() выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅, Ссли Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ type ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ функция mb_http_output() провСряСт, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° encoding Π½Π΅ содСрТит Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ², ΠΈΠ½Π°Ρ‡Π΅ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

ODBC

Ѐункция odbc_fetch_row() Ρ€Π°Π½ΡŒΡˆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° row ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 0. Π’Π΅ΠΏΠ΅Ρ€ΡŒ функция Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ pcntl_sigprocmask(), pcntl_sigwaitinfo() ΠΈ pcntl_sigtimedwait() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

  • ValueError, Ссли массив signals оказался пустым (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pcntl_sigprocmask(), Ссли для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° mode установили Ρ€Π΅ΠΆΠΈΠΌ SIG_SETMASK)
  • TypeError, Ссли массив signals содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΈΠΏΡƒ int
  • ValueError, Ссли массив signals содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ оказалось нСдопустимым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ сигнала

Ѐункция pcntl_sigprocmask() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ mode ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² список: SIG_BLOCK, SIG_UNBLOCK ΠΈΠ»ΠΈ SIG_SETMASK.

Ѐункция pcntl_sigtimedwait() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ:

  • ValueError, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° seconds мСньшС 0
  • ValueError, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° nanoseconds мСньшС 0 ΠΈΠ»ΠΈ большС 1e9
  • ValueError, Ссли значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² seconds ΠΈ nanoseconds Ρ€Π°Π²Π½Ρ‹ 0

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

Установка Π½Π΅ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ session.gc_divisor ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ session.gc_probability Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

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

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ simplexml_import_dom() Π½Π΅ с XML-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ValueError выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ TypeError.

НовыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ошибки Π² стандартных функциях

Ѐункция round() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ провСряСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° mode ΠΈ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError для нСдопустимых Ρ€Π΅ΠΆΠΈΠΌΠΎΠ². РаньшС функция ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»Π° нСдопустимыС Ρ€Π΅ΠΆΠΈΠΌΡ‹ округлСния ΠΊΠ°ΠΊ Ρ€Π΅ΠΆΠΈΠΌ PHP_ROUND_HALF_UP.

Ѐункция str_getcsv() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, ΠΊΠΎΠ³Π΄Π° Π΄Π»ΠΈΠ½Π° раздСлитСля separator ΠΈ ограничитСля ΠΏΠΎΠ»Π΅ΠΉ enclosure Π½Π΅ Ρ€Π°Π²Π½Π° ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±Π°ΠΉΡ‚Ρƒ, ΠΈΠ»ΠΈ Ссли Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ символа экранирования escape Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ символ ΠΈΠ»ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Π­Ρ‚ΠΎ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ повСдСнию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ fputcsv() ΠΈ fgetcsv().

Ѐункция php_uname() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° mode нСдопустимо.

ΠžΠΏΡ†ΠΈΡ "allowed_classes" Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unserialize() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ TypeError ΠΈ ValueError, Ссли Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π½Π΅ массив (array) ΠΈΠΌΡ‘Π½ классов.

Класс XMLReader

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° нСдопустимой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ XMLReader::open() ΠΈΠ»ΠΈ XMLReader::XML() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° строки (string), которая содСрТит Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹, Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ‹Π΄Π°Π²Π°Π»Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

Класс XMLWriter

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° строки (string), которая содСрТит Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹, Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ‹Π΄Π°Π²Π°Π»Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

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

ΠœΠ΅Ρ‚ΠΎΠ΄ XSLTProcessor::setParameter() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError, Ссли значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² содСрТат Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, поэтому Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ.

Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° XSLTProcessor::importStyleSheet() Π½Π΅ с XML-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ValueError выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ TypeError.

ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ callback-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²ΠΎ врСмя ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π° Π½Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

Date

Бинтаксис ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² снова ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² символах number мноТСствСнныС Π·Π½Π°ΠΊΠΈ числа: +-2.

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

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ модуля DOM Ρ€Π°Π½ΡŒΡˆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false ΠΈΠ»ΠΈ выбрасывали ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ DOMException с ΠΊΠΎΠ΄ΠΎΠΌ DOM_PHP_ERR, Ссли Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π». Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ постоянно Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ DOMException с ΠΊΠΎΠ΄ΠΎΠΌ DOM_INVALID_STATE_ERR. Вакая ситуация Π² ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ стСпСни маловСроятна ΠΈ вряд Π»ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅Ρ‚ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ΄. Π’ ΠΈΡ‚ΠΎΠ³Π΅ вмСсто Ρ‚ΠΈΠΏΠ° DOMDocument|false ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ DOMImplementation::createDocument() Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° DOMDocument.

РаньшС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DOMXPath Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ получался Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DOMXPath большС Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выбрасываСт ΠΎΡˆΠΈΠ±ΠΊΡƒ Error.

ΠœΠ΅Ρ‚ΠΎΠ΄ DOMImplementation::getFeature() ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ.

Класс GMP

Класс GMP сдСлали ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ поэтому Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ класса Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

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

Π’ нСдопустимых строках с ошибками ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ функция mb_substr() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ индСксы символов Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ большСй части Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ строками. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ индСксы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ функция mb_strpos(), Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ mb_substr().

Для строк Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ SJIS-Mac, ΠΈΠ»ΠΈ Π΅Ρ‘ псСвдонимС MacJapanese, индСксы символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ mb_substr(), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° индСксы ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Unicode, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ строки Π² Unicode. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠΊΠΎΠ»ΠΎ 40 символов ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ SJIS-Mac ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ Unicode.

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

ΠΠ΅Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈ Π½Π΅Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ константу MYSQLI_SET_CHARSET_DIR ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ MYSQLI_STMT_ATTR_PREFETCH_ROWS ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ. Ѐункция нСдоступна Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ mysqlnd.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ MYSQLI_CURSOR_TYPE_FOR_UPDATE ΠΈ MYSQLI_CURSOR_TYPE_SCROLLABLE ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ Π½ΠΈ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ mysqlnd, Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libmysql.

ΠΠ΅Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΡƒΡŽ константу MYSQLI_TYPE_INTERVAL β€” Π·Π°Π³Π»ΡƒΡˆΠΊΡƒ ΠΈ псСвдоним константы MYSQLI_TYPE_ENUM β€” ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ.

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

Код ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания сСрвСра MySQL, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ с 2006 Π½Π° 4031 для сСрвСров MySQL вСрсии 8.0.24 ΠΈ Π²Ρ‹ΡˆΠ΅.

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

МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ opcache.interned_strings_buffer Π² 64-разрядных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ составляСт 32767 ΠœΠ‘. РаньшС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ составляло 4095 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ΠΎΠ².

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ JIT

ЗначСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для JIT-компилятора измСнились с opcache.jit=tracing Π½Π° opcache.jit=disable ΠΈ с opcache.jit_buffer_size=0 Π½Π° opcache.jit_buffer_size=64M.

Π­Ρ‚ΠΎ Π½Π΅ влияСт Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ JIT ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Однако Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ JIT-компиляция ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ opcache.jit, Π° Π½Π΅ opcache.jit_buffer_size. ИзмСнСниС Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ JIT Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ opcache.jit_buffer_size, Π½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ JIT-компиляции Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ opcache.jit. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ потрСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ opcache.jit.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ JIT-компиляции PHP Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ с критичСской ошибкой ΠΏΡ€ΠΈ запускС, Ссли инициализация JIT-компилятора ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»Π°ΡΡŒ.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ pcntl_sigprocmask(), pcntl_sigwaitinfo() ΠΈ pcntl_sigtimedwait() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка. РаньшС Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1.

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pcre2lib, которая ΠΈΠ΄Ρ‘Ρ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ поставки, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄ΠΎ вСрсии 10.44. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ запись {,3} Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ распознаСтся ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π° Π½Π΅ ΠΊΠ°ΠΊ тСкст. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, измСнилось Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… классов символов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UCP. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ » список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ PCRE2.

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

Атрибуты Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER ΠΈ Pdo\Dblib::ATTR_DATETIME_CONVERT Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ логичСскиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ вмСсто цСлочислСнных. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ установка Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PDO::setAttribute() ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PDO::getAttribute() ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (bool).

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

Атрибут PDO::ATTR_AUTOCOMMIT Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ дСйствуСт ΠΊΠ°ΠΊ логичСский Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ вмСсто цСлочислСнного. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ установка Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PDO::setAttribute() ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PDO::getAttribute() ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (bool).

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ раскрываСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ API-интСрфСйсы Π‘Π£Π‘Π” Firebird Π½Π° языкС C++, поэтому для сборки модуля Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся компилятор C++. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ потрСбуСтся ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ fbclient 3.0 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅.

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

Атрибуты PDO::ATTR_AUTOCOMMIT, PDO::ATTR_EMULATE_PREPARES ΠΈ PDO::MYSQL_ATTR_DIRECT_QUERY Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ логичСскиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ вмСсто цСлочислСнных. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ установка Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PDO::setAttribute() ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ PDO::getAttribute() ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (bool).

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

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² DSN-строкС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ конструктора класса PDO, Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… конструктора, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² DSN-строкС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Π»ΠΈΠΆΠ΅ ΠΊ полоТСниям Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса SimpleXMLElement β€” прСдставляСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнт Π² XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, Π½ΠΎ ΠΈ интСрфСйс RecursiveIterator. Π”ΠΎ PHP 8.4.0 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ SimpleXMLElement::asXML() ΠΈΠ»ΠΈ SimpleXMLElement::getName() ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… экзСмпляров ΠΊ строкС (string) нСявно сбрасывали ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€.

Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Π»ΠΎ Ρ†ΠΈΠΊΠ»Ρ‹ бСсконСчными, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ отматывался ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

<?php

$xmlString
= "<root><a><b>1</b><b>2</b><b>3</b></a></root>";
$xml = simplexml_load_string($xmlString);

$nodes = $xml->a->b;
foreach (
$nodes as $nodeData) {
echo
"Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: " . $nodeData . "\n";

$xml = $nodes->asXml();
}

…вызовСт бСсконСчный Ρ†ΠΈΠΊΠ».

Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 1
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
// ...

Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ исправили, ΠΈ элСмСнт SimpleXMLElement большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ нСявно ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΎΡ‚ΠΌΠΎΡ‚Π°ΡŽΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 1
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 2
Π”Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Π°: 3

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ прСдставили свойство SoapClient::$typemap массивом (array), Π° Π½Π΅ рСсурсом (resource). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ is_resource() Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ is_resource($client->typemap) потрСбуСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° null Π²Ρ€ΠΎΠ΄Π΅ $client->typemap !== null.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ SOAP ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ модуля session. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ запускС Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ошибки, Ссли Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ SOAP, Π° PHP ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±Π΅Π· модуля session, Π½ΠΎ с Ρ„Π»Π°Π³ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ --enable-rtld-now. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ двумя способами: Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌ rtld-now, Π»ΠΈΠ±ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ сСссий.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ strcspn() с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ characters пустой строки вмСсто Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ остановки Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π½ΡƒΠ»Π΅Π²ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅ возвращаСтся Π΄Π»ΠΈΠ½Π° строки.

Ѐункция http_build_query() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ пСрСчислСния.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ stream_bucket_make_writeable() ΠΈ stream_bucket_new() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ экзСмпляр класса StreamBucket, Π° Π½Π΅ класса stdClass.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ поврСТдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° сбои Π² конструкторС Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΠ°Ρ€ΡΠ΅Ρ€ XML

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ сСмСйства xml_set_*_handler Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ сигнатуру callable|string|null ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² handler. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Ρ‚ΠΎΠ³ΠΎ, значСния с Ρ‚ΠΈΠΏΠΎΠΌ string, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ названиям ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ xml_set_object(), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π° сущСствованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² классС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ установкой Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ callable-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, трСбуСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ xml_set_object(). ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° пустой строки для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ, Π½ΠΎ устарСла.

Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ функция xml_set_object() ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Ρ‚ΠΈΠΏΡƒ callable, устарСли, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ экзСмпляры callable-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ нСпосрСдствСнно Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄.

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

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

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