mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
Update incompatible.xml
This commit is contained in:
@ -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>
|
||||
|
||||
|
Reference in New Issue
Block a user