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

Π’Ρ‹Π·ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нСдостаточного количСства Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

РаньшС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ с нСдостаточным количСством Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²Ρ‹Π΄Π°Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто прСдупрСТдСния Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error. Π­Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ влияния Π½Π° встроСнныС. НапримСр:

<?php

function test($param){}
test();

?>

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π°:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

Π—Π°ΠΏΡ€Π΅Ρ‚ динамичСского Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ интроспСкции области видимости

ДинамичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ»ΠΈ (Π² Π²ΠΈΠ΄Π΅ $func() ΠΈΠ»ΠΈ array_map('extract', ...), ΠΈ Ρ‚. Π΄.) Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ области видимости, Ρ‡Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Бписок Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

<?php
(function () {
$func = 'func_num_args';
$func();
})();

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Warning: Cannot call func_num_args() dynamically in %s on line %d

НСкоррСктныС ΠΈΠΌΠ΅Π½Π° классов, интСрфСйсов ΠΈ Ρ‚Ρ€Π΅ΠΉΡ‚ΠΎΠ²

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° классов, интСрфСйсов ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅ΠΉΡ‚ΠΎΠ²:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ числовых строк Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΡƒΡ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ

ЦСлочислСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ числовых строк Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Π½Π°ΡƒΡ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (int) ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: intval() (с Π±Π°Π·ΠΎΠΉ 10), settype(), decbin(), decoct() ΠΈ dechex().

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° mt_rand()

mt_rand() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° "Π’ΠΈΡ…Ρ€ΡŒ ΠœΠ΅Ρ€ΡΠ΅Π½Π°". Если Π²Ρ‹ полагались Π½Π° Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ mt_srand(), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ константу MT_RAND_PHP Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° mt_srand() для сохранСния старой (Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ) Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

rand() псСвдоним для mt_rand() и srand() псСвдоним для mt_srand()

rand() ΠΈ srand() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто синонимами для mt_rand() ΠΈ mt_srand(). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ измСнился: rand(), shuffle(), str_shuffle() ΠΈ array_rand().

Π—Π°ΠΏΡ€Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ удалСния ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ…

Π‘ΠΈΠΌΠ²ΠΎΠ» удалСния ASCII (0x7F) большС нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ…, Π½Π΅ ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹Ρ… Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ error_log ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° syslog

Если ini-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ error_log установлСн ΠΊΠ°ΠΊ syslog, Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π½ΠΈ ошибок PHP ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½ΠΈ ошибок "syslog". Π­Ρ‚ΠΎ позволяСт Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΎ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΊΠΎΠ³Π΄Π° всС ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ "notice".

ДСструкторы Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ дСструкторы Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ссли Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. РаньшС это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ зависСло ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»Π° Π»ΠΈ ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π½Π΅ конструктора (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² трассировкС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ).

call_user_func() ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ссылки Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ call_user_func() всСгда Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ссли вызываСтся функция, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π°Ρ ссылки Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π Π°Π½Π΅Π΅ это зависСло ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π» Π»ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, call_user_func() ΠΈ call_user_func_array() большС Π½Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² этом случаС. ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ "expected reference" Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ΠΎ, Π½ΠΎ сама функция ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пустого индСкса Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ строкам

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° пустого индСкса ΠΊ строкС ($str[] = $x) Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ вмСсто Ρ‚ΠΈΡ…ΠΎΠ³ΠΎ прСобразования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊ массиву.

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ доступа ΠΊ элСмСнту строки ΠΏΠΎ индСксу ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ пустой строкС

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ символа Π² пустой строкС Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ для Π½Π΅ пустой. Π’. Π΅. запись ΠΏΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π΅ цСлочислСнного значСния смСщСния ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ числу, дополнСнию строки Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ символами ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ использованию Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа ΠΈΠ· присваиваСмой строки. РаньшС, Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации, пустая строка Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ пустой массив.

<?php
$a
= '';
$a[10] = 'foo';
var_dump($a);
?>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² PHP 7.0:

array(1) {
  [10]=>
  string(3) "foo"
}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² PHP 7.1:

string(11) "          f"

Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ ini-Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ini-Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ массива, ΠΊΠΎΠ³Π΄Π° элСмСнты созданы автоматичСски Ρ‡Π΅Ρ€Π΅Π· присвоСниС ΠΏΠΎ ссылкС, Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ располоТСния элСмСнтов массива, создаваСмых присвоСниСм ΠΏΠΎ ссылкС Π½Π΅ созданных Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ присвоСния элСмСнтов, Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

<?php
$array
= [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² PHP 7.0:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² PHP 7.1:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ сортировки эквивалСнтных элСмСнтов

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки Π±Ρ‹Π» ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡŽ Π² порядкС располоТСния эквивалСнтных элСмСнтов послС сортировки ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями PHP.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

НС ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° порядок располоТСния эквивалСнтных элСмСнтов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ.

БообщСния для ошибок E_RECOVERABLE

БообщСния для ошибок E_RECOVERABLE ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ с "Catchable fatal error" Π½Π° "Recoverable fatal error".

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $options Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unserialize()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ элСмСнт allowed_classes ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° $options Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unserialize() строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Ρ‚ΠΈΠΏΠΎΠΌ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ array ΠΈ bool, Ρ‚ΠΎ unserialize() Π²Π΅Ρ€Π½Ρ‘Ρ‚ false ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ уровня E_WARNING.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ DateTime ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ микросСкунды

Π’Π΅ΠΏΠ΅Ρ€ΡŒ DateTime ΠΈ DateTimeImmutable ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ микросСкунды ΠΏΡ€ΠΈ создании с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π² явном Π²ΠΈΠ΄Π΅, Π»ΠΈΠ±ΠΎ со строкой ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "first day of next month"). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сравнСниС Π΄Π²ΡƒΡ… подряд созданных экзСмпляров класса скорСС Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ false Π½Π΅ΠΆΠ΅Π»ΠΈ true:

<?php
new DateTime() == new DateTime();
?>

Π’Ρ‹Π·ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Error вмСсто Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок

Для модуля Date ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… сСриализации классов DateTime ΠΈΠ»ΠΈ DatePeriod, ΠΈΠ»ΠΈ ошибки ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ часового пояса ΠΈΠ· сСриализованных Π΄Π°Π½Π½Ρ‹Ρ…, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² __wakeup() ΠΈΠ»ΠΈ __set_state(), вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ DBA Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ манипулирования Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ dba_insert()) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки Ссли ΠΊΠ»ΡŽΡ‡ Π½Π΅ содСрТит Ρ€ΠΎΠ²Π½ΠΎ Π΄Π²ΡƒΡ… элСмСнтов.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ DOM нСкоррСктная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° контСкста схСмы ΠΈΠ»ΠΈ RelaxNG Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ класс ΡƒΠ·Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ свойство ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свойство доступноС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ IMAP адрСс email Π΄Π»ΠΈΠ½Π½Π΅Π΅ 16385 Π±Π°ΠΉΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Intl Π² случаС возникновСния ошибки Π²Ρ‹Π·ΠΎΠ²Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ конструктора Π² классС, Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Collator Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Transliterator Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error Π² случаС возникновСния ошибки клонирования Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ transliterator вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ LDAP ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ нСизвСстного Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² ldap_batch_modify() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ mbstring Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mb_ereg() ΠΈ mb_eregi() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ParseError Π² случаС Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ рСгулярного выраТСния Π»ΠΈΠ±ΠΎ Π² случаС использования ΠΎΠΏΡ†ΠΈΠΈ 'e'.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Mcrypt mcrypt_encrypt() ΠΈ mcrypt_decrypt() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки, Ссли mcrypt Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ mysqli ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ свойство ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свойство доступноС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Reflection Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ сСссий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сСссии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ строку для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° функция для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ SimpleXML ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° создания бСзымянного Π»ΠΈΠ±ΠΎ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ SPL ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SplDirectory Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки. Аналогично, Π²Ρ‹Π·ΠΎΠ² ArrayIterator::append() ΠΊΠΎΠ³Π΄Π° итСрация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error.

Ѐункция assert(), ΠΊΠΎΠ³Π΄Π° Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ строковый Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ParseError вмСсто Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки, Ссли PHP-ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½. Аналогично, Π²Ρ‹Π·ΠΎΠ² forward_static_call() Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ пространства класса Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Tidy Ρ€ΡƒΡ‡Π½ΠΎΠ΅ созданиС tidyNode Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ WDDX цикличСскиС ссылки ΠΏΡ€ΠΈ сСриализации Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ XML-RPC цикличСскиС ссылки ΠΏΡ€ΠΈ сСриализации Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Zip ΠΌΠ΅Ρ‚ΠΎΠ΄ ZipArchive::addGlob() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Error вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибки, Ссли отсутствуСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° glob.

ЛСксичСски связанныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π°

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, привязанныС ΠΊ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ use, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π°, Ρ‡Ρ‚ΠΎ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ superglobals, $this ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, всС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

<?php
$f
= function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

Π˜Π·ΠΌΠ΅Π½Ρ‘Π½ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° long2ip()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ long2ip() ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏΠ° int Π° Π½Π΅ string.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ JSON

INI-настройка serialize_precision опрСдСляСт Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ сСриализации ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° float.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пустого ΠΊΠ»ΡŽΡ‡Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию свойства с пустым ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ€Π°Π½ΡŒΡˆΠ΅ имя свойства ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ _empty_.

<?php
var_dump
(json_decode(json_encode(['' => 1])));

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π°:

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Ρ„Π»Π°Π³Π° JSON_UNESCAPED_UNICODE Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ json_encode() ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ U+2028 ΠΈ U+2029 Π±ΡƒΠ΄ΡƒΡ‚ экранированы.

ИзмСнСниС Π² сСмантикС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² mb_ereg() ΠΈ mb_eregi()

Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ mb_ereg() ΠΈ mb_eregi() (regs) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ устанавливаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ пустому массиву, Ссли Π½Π΅ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ совпадСний. Π Π°Π½Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ оставался Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠ° sslv2

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠ° sslv2 Π² OpenSSL ΡƒΠ΄Π°Π»Π΅Π½Π°.

Π—Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½ "return;" для Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠ² ΡƒΠΆΠ΅ Π²ΠΎ врСмя компиляции

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² функциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ E_COMPILE_ERROR (Ссли Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π½Π΅ объявлСн ΠΊΠ°ΠΊ void), Π΄Π°ΠΆΠ΅ Ссли ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнут.

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

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

up
44
love at sickpeople dot se ΒΆ
9 years ago
For anyone migrating from 5.x to 7.1:

About "Array ordering when elements are automatically created during by reference assignments has changed" on this page

(http://php.net/manual/en/migration71.incompatible.php#migration71.incompatible.array-order)

The behaviour of 7.1 is THE SAME as of PHP 5. It is only 7.0 that differs.

See https://3v4l.org/frbUc

<?php

$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
up
34
kees at twekaers dot net ΒΆ
9 years ago
The backwards incompatible change 'The empty index operator is not supported for strings anymore' has a lot more implications than just a fatal error on the following code

<?php
$a = "";
$a[] = "hello world";
var_dump($a);
?>

This will give a fatal error in 7.1 but will work as expected in 7.0 or below and give you: (no notice, no warning)

array(1) {
  [0]=>
  string(11) "hello world"
}

However, the following is also changed:

<?php
$a = "";
$a[0] = "hello world";
var_dump($a);
// 7.1: string(1) "h"
// pre-7.1: array(1) {  [0]=>  string(11) "hello world" }

$a = "";
$a[5] = "hello world";
var_dump($a);
// 7.1: string(6) "     h"
// pre-7.1: array(1) {  [0]=>  string(11) "hello world" }

?>
up
17
m dot r dot sopacua at gmail dot com ΒΆ
9 years ago
"OMFG! Why was session.hash_function removed?!? Dude!"

https://wiki.php.net/rfc/session-id-without-hashing

There. Saved ya a search.
up
1
mikem at gmail dot com ΒΆ
8 years ago
ArgumentCountError - this modification is the main reason to avoid this version on older projects.
up
0
david at artefactual dot com ΒΆ
7 years ago
Regarding the ArgumentCountError, PHP 7.1+ does still support user functions with a variable number of arguments, using the "func(...$args) {}" syntax, see: https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list