diff --git a/appendices/migration72/incompatible.xml b/appendices/migration72/incompatible.xml index fbb54ca8e..f30ac625f 100644 --- a/appendices/migration72/incompatible.xml +++ b/appendices/migration72/incompatible.xml @@ -2,10 +2,10 @@ - Изменения, ломающие обратную совместимость + Изменения, которые ломают обратную совместимость - Предотвращение возврата отрицательного нуля из <function>number_format</function> + Предотвращение возврата отрицательного нуля из функции <function>number_format</function> Раньше функция number_format возвращала -0. @@ -18,7 +18,9 @@ ]]> @@ -29,12 +31,12 @@ var_dump(number_format(-0.01)); // теперь выводит string(1) "0" в Теперь числовые ключи лучше обрабатываются при приведении массивов к объектам и - объектов к массивам (через явное приведение, либо используя settype). + объектов к массивам (через явное приведение, либо через функцию settype). - Это означает, что числовые (или числа в виде строк) ключи из массивов, конвертированные - в объекты теперь будут доступны: + То есть целочисленные (или строковые целочисленные) ключи из массивов, которые приводятся + к объектам, теперь будут доступны: @@ -42,7 +44,7 @@ var_dump(number_format(-0.01)); // теперь выводит string(1) "0" в 1]; $obj = (object)$arr; var_dump( @@ -50,6 +52,8 @@ var_dump( $obj->{'0'}, // теперь работает $obj->{0} // теперь работает ); + +?> ]]> &example.outputs; @@ -66,7 +70,7 @@ int(1) - И теперь числовые (или числа в виде строк) ключи объектов доступны при конвертации в массивы: + И теперь целочисленные (или строковые целочисленные) ключи объектов доступны при конвертации в массивы: @@ -81,19 +85,23 @@ $obj = new class { $this->{0} = 1; } }; + $arr = (array)$obj; + var_dump( $arr, $arr[0], // теперь работает $arr['0'] // теперь работает ); + +?> ]]> &example.outputs; // теперь это числовой ключ, а не строковый + [0]=> // Теперь это целочисленный ключ, а не строковый int(1) } int(1) @@ -104,13 +112,13 @@ int(1) - Запрещена передача &null; в <function>get_class</function> + Запрещена передача константы &null; в функцию <function>get_class</function> Раньше передача &null; в функцию get_class возвращала - имя класса, из которого был сделан вызов. Это поведение было удалено и теперь вместо - этого будет вызвана ошибка уровня E_WARNING. Для - достижения того же поведения, что и раньше, следует просто опустить аргумент. + имя класса, из которого сделали вызов. Это поведение удалили, и теперь вместо + этого выдаётся ошибка уровня E_WARNING. Чтобы получить + предыдущее поведение, следует просто опустить аргумент. @@ -118,9 +126,9 @@ int(1) Предупреждение при подсчёте неисчисляемых типов - Теперь при использовании count с параметром, - который нельзя посчитать будет возникать ошибка уровня E_WARNING - (это также касается sizeof как псевдонима этой функции). + Теперь при вызове функции count с параметром, + который нельзя посчитать, будет возникать ошибка уровня E_WARNING + (это также касается функции sizeof как псевдонима этой функции). @@ -130,11 +138,13 @@ int(1) var_dump( count(null), // NULL нельзя подсчитать - count(1), // числа нельзя подсчитать - count('abc'), // строки нельзя подсчитать - count(new stdClass), // объекты, не реализующие интерфейс Countable, нельзя подсчитать - count([1,2]) // массивы можно подсчитать + count(1), // Числа нельзя подсчитать + count('abc'), // Строки нельзя подсчитать + count(new stdClass), // Объекты, которые не реализуют интерфейс Countable, нельзя подсчитать + count([1,2]) // Массивы можно подсчитать ); + +?> ]]> &example.outputs; @@ -162,10 +172,10 @@ int(2) В рамках долгосрочной миграции отказа от ресурсов, модуль - Hash был обновлён + Hash обновили для использования объектов вместо ресурсов. Это изменение должно быть плавным - для PHP-разработчиков, за исключением случаев, когда используются проверки is_resource - (которые нужно заменить на использование is_object). + для PHP-разработчиков, за исключением проверок через функцию is_resource, + которые нужно заменить на функцию is_object. @@ -173,7 +183,7 @@ int(2) Улучшены значения по умолчанию в SSL/TLS - Были сделаны следующие изменения в значения по умолчанию: + В значения по умолчанию внесли следующие изменения: @@ -197,10 +207,11 @@ int(2) - Возвращаемое значение <function>gettype</function> для закрытых ресурсов + Значение, которое возвращает функция <function>gettype</function> для закрытых ресурсов - Раньше использование gettype на закрытом ресурсе возвращало строку "unknown type". Теперь будет возвращена строка + Раньше вызов функции gettype на закрытом ресурсе + возвращал строку "unknown type". Теперь функция будет возвращать строку "resource (closed)". @@ -209,8 +220,8 @@ int(2) <function>is_object</function> и <classname>__PHP_Incomplete_Class</classname> - Раньше использование is_object на классе - __PHP_Incomplete_Class возвращало &false;. + Раньше вызов функции is_object на классе + __PHP_Incomplete_Class возвращал &false;. Теперь будет возвращаться &true;. @@ -229,7 +240,7 @@ int(2) Поддержка Windows - Официально поддерживаемые минимальные версии Windows теперь являются Windows 7/Server + Официально поддерживаемые минимальные версии Windows теперь — Windows 7 и Server 2008 R2. @@ -246,9 +257,9 @@ int(2) <literal>object</literal> для имён классов - Имя object ранее было мягко зарезервировано с PHP 7.0. + Имя object раньше было мягко зарезервировано с PHP 7.0. Теперь оно полноценное зарезервированное слово, - запрещающее использовать его в качестве имени класса, трейта или интерфейса. + которое запрещает использовать его как имя класса, трейта или интерфейса. @@ -256,31 +267,32 @@ int(2) Поддержка NetWare - Поддержка NetWare была удалена. + Удалили поддержку NetWare. - <function>array_unique</function> with <constant>SORT_STRING</constant> + + Пример работы функции <function>array_unique</function> с константой <constant>SORT_STRING</constant> + - Если sort_flags равен - SORT_STRING, ранее массив - array копировался, а не уникальные элементы - удалялись (сохраняя значения цифровых индексов), - но теперь создаётся новый массив путём добавления уникальных элементов. - Это может привести к различным числовым индексам. + Хотя функция array_unique с флагом SORT_STRING + раньше копировала массив и удаляла неуникальные элементы (без последующей упаковки массива), + теперь новый массив создаётся путём добавления + уникальных элементов. Это может привести к получению разных числовых индексов. - Изменения <function>bcmod</function> с числами с плавающей точкой + Изменения в работе функции <function>bcmod</function> с числами с плавающей точкой - Функция bcmod больше не обрезает числа с плавающей точкой до целых. Таким образом, её поведение теперь соответствует + Функция bcmod больше не обрезает числа с плавающей точкой до целых. + Таким образом, её поведение теперь соответствует функции fmod, а не оператору %. Например, bcmod('4', '3.5') теперь возвращает - 0.5 вместо 1. + значение 0.5, а не 1. @@ -290,7 +302,7 @@ int(2) Функции hash_hmac, hash_hmac_file, hash_pbkdf2 и hash_init (с - HASH_HMAC) больше не принимают некриптографические хеши. + флагом HASH_HMAC) больше не принимают некриптографические хеши. @@ -298,18 +310,18 @@ int(2) Опции функции <function>json_decode</function> - Опция функции json_decode, - JSON_OBJECT_AS_ARRAY, теперь используется, если второй параметр (assoc) равен &null;. Ранее - JSON_OBJECT_AS_ARRAY всегда игнорировался. + Теперь используется опция JSON_OBJECT_AS_ARRAY функции json_decode, + если второй параметр (assoc) равен &null;. Раньше + флаг JSON_OBJECT_AS_ARRAY всегда игнорировался. - Вывод <function>rand</function> и <function>mt_rand</function> + Вывод функций <function>rand</function> и <function>mt_rand</function> - Числа, генерируемые rand и - mt_rand для определённого параметра переинициализации (seed), могут отличаться от PHP 7.1 на + Числа, которые генерируют функции rand + и mt_rand для определённого параметра переинициализации (seed), могут отличаться от PHP 7.1 на 64-битных машинах (из-за исправления ошибки модульного смещения в реализации). @@ -318,19 +330,19 @@ int(2) Удаление ini-настройки <link linkend="ini.sql.safe-mode"><parameter>sql.safe_mode</parameter></link> - Настройка конфигурации sql.safe_mode была удалена. + Настройку конфигурации sql.safe_mode удалили. - Изменения в <function>date_parse</function> и <function>date_parse_from_format</function> + Изменения в функциях <function>date_parse</function> и <function>date_parse_from_format</function> - Элемент массива zone, возвращаемого функциями - date_parse_from_format и - date_parse теперь отображает секунды вместо - минут, а его знак инвертируется. Например, -120 - теперь будет 7200. + Элемент массива zone, который возвращают функции + date_parse_from_format + и date_parse, теперь отображает секунды вместо + минут, а его знак инвертируется. Например, значение -120 + теперь будет значением 7200.