Update incompatible.xml

This commit is contained in:
Mikhail Alferov
2024-05-30 03:48:57 +03:00
committed by GitHub
parent 2a2affced2
commit 5e3648820c

View File

@ -2,7 +2,7 @@
<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: lex Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="migration73.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Изменения, ломающие обратную совместимость</title>
<title>Изменения, которые ломают обратную совместимость</title>
<sect2 xml:id="migration73.incompatible.core">
<title>Ядро PHP</title>
@ -18,10 +18,12 @@
<programlisting role="php">
<![CDATA[
<?php
$str = <<<FOO
abcdefg
FOO
FOO;
?>
]]>
</programlisting>
@ -46,6 +48,7 @@ FOO;
<programlisting role="php">
<![CDATA[
<?php
while ($foo) {
switch ($bar) {
case "baz":
@ -54,6 +57,7 @@ while ($foo) {
// "break". Возможно, вы имели в виду "continue 2"?
}
}
?>
]]>
</programlisting>
@ -66,10 +70,10 @@ while ($foo) {
<para>
Доступ к массиву типа <literal>$obj["123"]</literal>,
где <literal>$obj</literal> реализует <classname>ArrayAccess</classname>,
а <literal>"123"</literal> - это целочисленный строковый литерал,
где <literal>$obj</literal> реализует интерфейс <classname>ArrayAccess</classname>,
а <literal>"123"</literal> целочисленный строковый литерал,
больше не приведёт к неявному преобразованию в целое число,
т.е. <literal>$obj->offsetGet("123")</literal> вместо <literal>$obj->offsetGet(123)</literal>.
т. е. <literal>$obj->offsetGet("123")</literal> вместо <literal>$obj->offsetGet(123)</literal>.
Это соответствует существующему поведению для нелитеральных значений.
Поведение массивов никак не изменилось, они продолжают неявно преобразовывать целые строковые ключи в целые числа.
</para>
@ -87,17 +91,21 @@ while ($foo) {
<programlisting role="php">
<![CDATA[
<?php
class Test {
class Test
{
public static $x = 0;
}
class Test2 extends Test { }
Test2::$x = &$x;
$x = 1;
var_dump(Test::$x, Test2::$x);
// Ранее: int(0), int(1)
// Раньше: int(0), int(1)
// Теперь: int(1), int(1)
?>
]]>
</programlisting>
@ -115,10 +123,12 @@ var_dump(Test::$x, Test2::$x);
<programlisting role="php">
<![CDATA[
<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// Ранее: int(4), Теперь: int(3)
// Раньше: int(4), Теперь: int(3)
?>
]]>
</programlisting>
@ -138,13 +148,19 @@ var_dump($arr[0] + ($arr[0] = 2));
<programlisting role="php">
<![CDATA[
<?php
function foo(...$args) {
function foo(...$args)
{
var_dump($args);
}
function gen() {
function gen()
{
yield 1.23 => 123;
}
foo(...gen());
?>
]]>
</programlisting>
@ -156,7 +172,7 @@ foo(...gen());
<title>Разное</title>
<para>
Утилита <filename>ext_skel</filename> была полностью переработана с новыми опциями, а некоторые старые опции удалены.
Утилиту <filename>ext_skel</filename> полностью переработали с новыми опциями, а некоторые старые опции удалили.
Теперь она написана на PHP и не имеет внешних зависимостей.
</para>
@ -231,7 +247,7 @@ foo(...gen());
<para>
Из-за дополнительной поддержки именованных фрагментов,
паттерны <literal>mb_ereg_*()</literal> с использованием именованных фрагментов будут вести себя по-разному.
В частности, именованные фрагменты будут частью совпадений, а <function>mb_ereg_replace</function>
В частности, именованные фрагменты будут частью совпадений, а функция <function>mb_ereg_replace</function>
будет интерпретировать дополнительный синтаксис. Смотрите <link
linkend="migration73.new-features.mbstring.named-captures">Именованные
фрагменты</link> для получения дополнительной информации.
@ -291,11 +307,11 @@ foo(...gen());
<title>SimpleXML</title>
<para>
Математические операции, включающие объекты
Математические операции, которые включают объекты
<link linkend="book.simplexml">SimpleXML</link>, теперь будут обрабатывать текст
как целое число (<type>int</type>) или число с плавающей точкой (<type>float</type>),
в зависимости от того, что является более подходящим.
Ранее значения обрабатывались как целые числа (<type>integer</type>) без каких-либо условий.
Раньше значения обрабатывались как целые числа (<type>integer</type>) без каких-либо условий.
</para>
</sect2>