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