svn: /phpdoc/ru/trunk/ language/oop5/magic.xml reference/var/functions/serialize.xml reference/var/functions/unserialize.xml

[email protected] (Sergey Panteleev)
Newsgroups php.doc.ru
Message-ID <[email protected]>
sergey                                   Fri, 03 Apr 2020 04:49:31 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=349603

Log:
docs(ru): Updated to English revision

Changed paths:
    U   phpdoc/ru/trunk/language/oop5/magic.xml
    U   phpdoc/ru/trunk/reference/var/functions/serialize.xml
    U   phpdoc/ru/trunk/reference/var/functions/unserialize.xml
svn-diffs-349603.txt (text/x-diff, 28.5 KB)
Modified: phpdoc/ru/trunk/language/oop5/magic.xml
===================================================================
--- phpdoc/ru/trunk/language/oop5/magic.xml	2020-04-03 04:30:35 UTC (rev 349602)
+++ phpdoc/ru/trunk/language/oop5/magic.xml	2020-04-03 04:49:31 UTC (rev 349603)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 349020 Maintainer: irker Status: ready -->
+<!-- EN-Revision: 349590 Maintainer: irker Status: ready -->
 <!-- Reviewed: yes -->
 <!-- $Revision$ -->
 <sect1 xml:id="language.oop5.magic" xmlns="http://docbook.org/ns/docbook">
@@ -16,6 +16,8 @@
   <link linkend="object.unset">__unset()</link>,
   <link linkend="object.sleep">__sleep()</link>,
   <link linkend="object.wakeup">__wakeup()</link>,
+  <link linkend="object.serialize">__serialize()</link>,
+  <link linkend="object.unserialize">__unserialize()</link>,
   <link linkend="object.tostring">__toString()</link>,
   <link linkend="object.invoke">__invoke()</link>,
   <link linkend="object.set-state">__set_state()</link>,
@@ -41,59 +43,150 @@
   </simpara>
  </caution>

-  <sect2 xml:id="language.oop5.magic.sleep">
+ <sect2 xml:id="language.oop5.magic.sleep">
+  <title>
+   <link linkend="object.sleep">__sleep()</link> и
+   <link linkend="object.wakeup">__wakeup()</link>
+  </title>
+
+  <methodsynopsis xml:id="object.sleep">
+   <modifier>public</modifier> <type>array</type><methodname>__sleep</methodname>
+   <void/>
+  </methodsynopsis>
+  <methodsynopsis xml:id="object.wakeup">
+   <modifier>public</modifier> <type>void</type><methodname>__wakeup</methodname>
+   <void/>
+  </methodsynopsis>
+
+  <para>
+   Функция <function>serialize</function> проверяет, присутствует ли в
+   классе метод с магическим именем <link linkend="object.sleep">__sleep()</link>.
+   Если это так, то этот метод выполняется до любой операции сериализации. Он может
+   очистить объект и должен возвращать массив с именами
+   всех переменных этого объекта, которые должны быть сериализованы.
+   Если метод ничего не возвращает, то сериализуется &null; и
+   выдается предупреждение <constant>E_NOTICE</constant>.
+  </para>
+  <note>
+   <para>
+    Недопустимо возвращать в <link linkend="object.sleep">__sleep()</link>
+    имена закрытых свойств в родительском классе. Это
+    приведет к ошибке уровня <constant>E_NOTICE</constant>.
+    Вместо этого вы можете использовать интерфейс
+    <classname>Serializable</classname>.
+   </para>
+  </note>
+  <para>
+   Предполагаемое использование <link linkend="object.sleep">__sleep()</link>
+   состоит в завершении работы над данными, ждущими обработки или
+   других подобных задач очистки. Кроме того, этот метод может полезен,
+   когда есть очень большие объекты, которые
+   нет необходимости полностью сохранять.
+  </para>
+  <para>
+   С другой стороны, функция <function>unserialize</function> проверяет
+   наличие метода с магическим именем
+   <link linkend="object.wakeup">__wakeup()</link>.
+   Если она имеется, эта функция может восстанавливать любые ресурсы,
+   которые может иметь объект.
+  </para>
+  <para>
+   Предполагаемое использование <link linkend="object.wakeup">__wakeup()</link>
+   заключается в восстановлении любых соединений с базой данных,
+   которые могли быть потеряны во время операции сериализации и
+   выполнения других операций повторной инициализации.
+  </para>
+  <example>
+   <title>Сериализация и десериализация</title>
+   <programlisting role="php">
+<![CDATA[
+<?php
+class Connection
+{
+    protected $link;
+    private $dsn, $username, $password;
+
+    public function __construct($dsn, $username, $password)
+    {
+        $this->dsn = $dsn;
+        $this->username = $username;
+        $this->password = $password;
+        $this->connect();
+    }
+
+    private function connect()
+    {
+        $this->link = new PDO($this->dsn, $this->username, $this->password);
+    }
+
+    public function __sleep()
+    {
+        return array('dsn', 'username', 'password');
+    }
+
+    public function __wakeup()
+    {
+        $this->connect();
+    }
+}?>
+]]>
+   </programlisting>
+  </example>
+ </sect2>
+
+ <sect2 xml:id="language.oop5.magic.serialize">
    <title>
-    <link linkend="object.sleep">__sleep()</link> и
-    <link linkend="object.wakeup">__wakeup()</link>
+    <link linkend="object.serialize">__serialize()</link> и
+    <link linkend="object.unserialize">__unserialize()</link>
    </title>
-
-   <methodsynopsis xml:id="object.sleep">
-    <modifier>public</modifier> <type>array</type><methodname>__sleep</methodname>
+
+   <methodsynopsis xml:id="object.serialize">
+    <modifier>public</modifier> <type>array</type><methodname>__serialize</methodname>
     <void/>
    </methodsynopsis>
-   <methodsynopsis xml:id="object.wakeup">
-    <type>void</type><methodname>__wakeup</methodname>
-    <void/>
+   <methodsynopsis xml:id="object.unserialize">
+    <modifier>public</modifier> <type>void</type><methodname>__unserialize</methodname>
+    <methodparam><type>array</type><parameter>data</parameter></methodparam>
    </methodsynopsis>
-
+
    <para>
-    Функция <function>serialize</function> проверяет, присутствует ли в вашем
-    классе метод с магическим именем <link linkend="object.sleep">__sleep()</link>.
-    Если это так, то этот метод выполняется до любой операции сериализации. Он может
-    очистить объект и должен возвращать массив с именами
-    всех переменных этого объекта, которые должны быть сериализованы.
-    Если метод ничего не возвращает, то сериализуется &null; и
-    выдается предупреждение <constant>E_NOTICE</constant>.
+    <function>serialize</function> проверяет, есть ли в классе функция с
+    магическим именем <link linkend="object.serialize">__serialize()</link>. Если да, функция
+    выполняется перед любой сериализацией. Она должна создать и вернуть ассоциативный массив пар ключ/значение,
+    которые представляют сериализованную форму объекта.
+    Если массив не возвращен, будет выдано <classname>TypeError</classname>.
    </para>
    <note>
     <para>
-     Недопустимо возвращать в <link linkend="object.sleep">__sleep()</link>
-     имена закрытых свойств в родительском классе. Это
-     приведет к ошибке уровня <constant>E_NOTICE</constant>.
-     Вместо этого вы можете использовать интерфейс
-     <classname>Serializable</classname>.
+     Если и <link linkend="object.serialize">__serialize()</link> и <link linkend="object.sleep">__sleep()</link> о
+     пределены в одном и том же объекте, будет вызван только метод <link linkend="object.serialize">__serialize()</link>.
+     <link linkend="object.sleep">__sleep()</link> будет игнорироваться. Если объект реализует интерфейс <link linkend="class.serializable">Serializable</link>,
+     метод <literal>serialize()</literal> интерфейса будет игнорироваться, а вместо него будет использован <link linkend="object.serialize">__serialize()</link>.
     </para>
    </note>
    <para>
-    Предполагаемое использование <link linkend="object.sleep">__sleep()</link>
-    состоит в завершении работы над данными, ждущими обработки или
-    других подобных задач очистки. Кроме того, этот метод может полезен,
-    когда есть очень большие объекты, которые
-    нет необходимости полностью сохранять.
+    Предполагаемое использование <link linkend="object.serialize">__serialize()</link> для определения удобного для сериализации
+    произвольного представления объекта. Элементы массива могут соответствовать свойствам объекта, но это не обязательно.
    </para>
    <para>
-    С другой стороны, функция <function>unserialize</function> проверяет
-    наличие метода с магическим именем
-    <link linkend="object.wakeup">__wakeup()</link>.
-    Если она имеется, эта функция может восстанавливать любые ресурсы,
-    которые может иметь объект.
+    И наоборот, <function>unserialize</function> проверяет
+    наличие магической функции <link linkend="object.unserialize">__unserialize()</link>.
+    Если функция присутствует, ей будет передан
+    восстановленный массив, который был возвращен из <link linkend="object.serialize">__serialize()</link>. Затем
+    он может восстановить свойства объекта из этого массива соответствующим образом.
    </para>
-   <para>
-    Предполагаемое использование <link linkend="object.wakeup">__wakeup()</link>
-    заключается в восстановлении любых соединений с базой данных,
-    которые могли быть потеряны во время операции сериализации и
-    выполнения других операций повторной инициализации.
-   </para>
+   <note>
+    <para>
+     Если и <link linkend="object.unserialize">__unserialize()</link> и <link linkend="object.wakeup">__wakeup()</link> о
+     пределены в одном и том же объекте, только будет вызван только метод <link linkend="object.unserialize">__unserialize()</link>.
+     <link linkend="object.wakeup">__wakeup()</link> будет игнорироваться.
+    </para>
+   </note>
+   <note>
+    <para>
+     Функция доступна с PHP 7.4.0.
+    </para>
+   </note>
    <example>
     <title>Сериализация и десериализация</title>
     <programlisting role="php">
@@ -103,7 +196,7 @@
 {
     protected $link;
     private $dsn, $username, $password;
-
+
     public function __construct($dsn, $username, $password)
     {
         $this->dsn = $dsn;
@@ -111,19 +204,27 @@
         $this->password = $password;
         $this->connect();
     }
-
+
     private function connect()
     {
         $this->link = new PDO($this->dsn, $this->username, $this->password);
     }
-
-    public function __sleep()
+
+    public function __serialize(): array
     {
-        return array('dsn', 'username', 'password');
+        return [
+          'dsn' => $this->dsn,
+          'user' => $this->username,
+          'pass' => $this->password,
+        ];
     }
-
-    public function __wakeup()
+
+    public function __unserialize(array $data): void
     {
+        $this->dsn = $data['dsn'];
+        $this->username = $data['user'];
+        $this->password = $data['pass'];
+
         $this->connect();
     }
 }?>
@@ -131,28 +232,28 @@
     </programlisting>
    </example>
   </sect2>
-
-  <sect2 xml:id="language.oop5.magic.tostring">
-   <title><link linkend="object.tostring">__toString()</link></title>
-   <methodsynopsis xml:id="object.tostring">
-    <modifier>public</modifier> <type>string</type><methodname>__toString</methodname>
-    <void/>
-   </methodsynopsis>
-   <para>
-    Метод <link linkend="object.tostring">__toString()</link> позволяет классу решать,
-    как он должен реагировать при преобразовании в
-    строку. Например, что вывести при выполнении <literal>echo $obj;</literal>. Этот метод
-    должен возвращать строку, иначе произойдёт фатальная ошибка уровня
-    <constant>E_RECOVERABLE_ERROR</constant>.
-   </para>
-   <warning>
-    <simpara>
-     Нельзя выбросить исключение из метода <link linkend="object.tostring">__toString()</link> до PHP 7.4.0. Это приведет к фатальной ошибке.
-    </simpara>
-   </warning>
-   <example>
-    <title>Простой пример</title>
-    <programlisting role="php">
+
+ <sect2 xml:id="language.oop5.magic.tostring">
+  <title><link linkend="object.tostring">__toString()</link></title>
+  <methodsynopsis xml:id="object.tostring">
+   <modifier>public</modifier> <type>string</type><methodname>__toString</methodname>
+   <void/>
+  </methodsynopsis>
+  <para>
+   Метод <link linkend="object.tostring">__toString()</link> позволяет классу решать,
+   как он должен реагировать при преобразовании в
+   строку. Например, что вывести при выполнении <literal>echo $obj;</literal>. Этот метод
+   должен возвращать строку, иначе произойдёт фатальная ошибка уровня
+   <constant>E_RECOVERABLE_ERROR</constant>.
+  </para>
+  <warning>
+   <simpara>
+    Нельзя выбросить исключение из метода <link linkend="object.tostring">__toString()</link> до PHP 7.4.0. Это приведет к фатальной ошибке.
+   </simpara>
+  </warning>
+  <example>
+   <title>Простой пример</title>
+   <programlisting role="php">
 <![CDATA[
 <?php
 // Объявление простого класса
@@ -175,9 +276,9 @@
 echo $class;
 ?>
 ]]>
-    </programlisting>
-    &example.outputs;
-    <screen>
+   </programlisting>
+   &example.outputs;
+   <screen>
 <![CDATA[
 Привет
 ]]>
@@ -195,26 +296,26 @@
     метода <link linkend="object.tostring">__toString()</link>
     вызывает ошибку <constant>E_RECOVERABLE_ERROR</constant>.
    </para>
-  </sect2>
-
-  <sect2 xml:id="language.oop5.magic.invoke">
-   <title><link linkend="object.invoke">__invoke()</link></title>
-   <methodsynopsis xml:id="object.invoke">
-    <type>mixed</type><methodname>__invoke</methodname>
-    <methodparam choice="opt"><parameter>...</parameter></methodparam>
-   </methodsynopsis>
+ </sect2>
+
+ <sect2 xml:id="language.oop5.magic.invoke">
+  <title><link linkend="object.invoke">__invoke()</link></title>
+  <methodsynopsis xml:id="object.invoke">
+   <type>mixed</type><methodname>__invoke</methodname>
+   <methodparam choice="opt"><parameter>...</parameter></methodparam>
+  </methodsynopsis>
+  <para>
+   Метод <link linkend="object.invoke">__invoke()</link>
+   вызывается, когда скрипт пытается выполнить объект как функцию.
+  </para>
+  <note>
    <para>
-    Метод <link linkend="object.invoke">__invoke()</link>
-    вызывается, когда скрипт пытается выполнить объект как функцию.
+    Данный метод доступен начиная с PHP 5.3.0.
    </para>
-   <note>
-    <para>
-     Данный метод доступен начиная с PHP 5.3.0.
-    </para>
-   </note>
-   <example>
-    <title>Использование <link linkend="object.invoke">__invoke()</link></title>
-    <programlisting role="php">
+  </note>
+  <example>
+   <title>Использование <link linkend="object.invoke">__invoke()</link></title>
+   <programlisting role="php">
 <![CDATA[
 <?php
 class CallableClass
@@ -229,9 +330,9 @@
 var_dump(is_callable($obj));
 ?>
 ]]>
-    </programlisting>
-    &example.outputs;
-    <screen>
+   </programlisting>
+   &example.outputs;
+   <screen>
 <![CDATA[
 int(5)
 bool(true)
@@ -238,26 +339,26 @@
 ]]>
     </screen>
    </example>
-  </sect2>
-
-  <sect2 xml:id="language.oop5.magic.set-state">
-   <title><link linkend="object.set-state">__set_state()</link></title>
-   <methodsynopsis xml:id="object.set-state">
-    <modifier>static</modifier> <type>object</type><methodname>__set_state</methodname>
-    <methodparam><type>array</type><parameter>properties</parameter></methodparam>
-   </methodsynopsis>
-   <para>
-    Этот <link linkend="language.oop5.static">статический</link> метод
-    вызывается для тех классов, которые экспортируются функцией
-    <function>var_export</function> начиная с PHP 5.1.0.
-   </para>
-   <para>
-    Единственный параметр этого метода является массив, содержащий экспортируемые
-    свойства в виде <literal>array('property' => value, ...)</literal>.
-   </para>
-   <example>
-    <title>Использование <link linkend="object.set-state">__set_state()</link> (начиная с PHP 5.1.0)</title>
-    <programlisting role="php">
+ </sect2>
+
+ <sect2 xml:id="language.oop5.magic.set-state">
+  <title><link linkend="object.set-state">__set_state()</link></title>
+  <methodsynopsis xml:id="object.set-state">
+   <modifier>static</modifier> <type>object</type><methodname>__set_state</methodname>
+   <methodparam><type>array</type><parameter>properties</parameter></methodparam>
+  </methodsynopsis>
+  <para>
+   Этот <link linkend="language.oop5.static">статический</link> метод
+   вызывается для тех классов, которые экспортируются функцией
+   <function>var_export</function> начиная с PHP 5.1.0.
+  </para>
+  <para>
+   Единственный параметр этого метода является массив, содержащий экспортируемые
+   свойства в виде <literal>array('property' => value, ...)</literal>.
+  </para>
+  <example>
+   <title>Использование <link linkend="object.set-state">__set_state()</link> (начиная с PHP 5.1.0)</title>
+   <programlisting role="php">
 <![CDATA[
 <?php

@@ -287,9 +388,9 @@

 ?>
 ]]>
-    </programlisting>
-    &example.outputs;
-    <screen>
+   </programlisting>
+   &example.outputs;
+   <screen>
 <![CDATA[
 object(A)#2 (2) {
   ["var1"]=>
@@ -312,25 +413,25 @@
      лежит на разработчике.
     </simpara>
    </note>
-  </sect2>
-
-  <sect2 xml:id="language.oop5.magic.debuginfo">
-   <title><link linkend="object.debuginfo">__debugInfo()</link></title>
-   <methodsynopsis xml:id="object.debuginfo">
-    <type>array</type><methodname>__debugInfo</methodname>
-    <void/>
-   </methodsynopsis>
-   <para>
-    Этот метод вызывается функцией <function>var_dump</function>, когда
-    необходимо вывести список свойств объекта. Если этот метод не определен,
-    тогда будут выведены все свойства объекта c модификаторами public, protected и private.
-   </para>
-   <para>
-    Этот метод был добавлен в PHP 5.6.0.
-   </para>
-   <example>
-    <title>Использование <link linkend="object.debuginfo">__debugInfo()</link></title>
-    <programlisting role="php">
+ </sect2>
+
+ <sect2 xml:id="language.oop5.magic.debuginfo">
+  <title><link linkend="object.debuginfo">__debugInfo()</link></title>
+  <methodsynopsis xml:id="object.debuginfo">
+   <type>array</type><methodname>__debugInfo</methodname>
+   <void/>
+  </methodsynopsis>
+  <para>
+   Этот метод вызывается функцией <function>var_dump</function>, когда
+   необходимо вывести список свойств объекта. Если этот метод не определен,
+   тогда будут выведены все свойства объекта c модификаторами public, protected и private.
+  </para>
+  <para>
+   Этот метод был добавлен в PHP 5.6.0.
+  </para>
+  <example>
+   <title>Использование <link linkend="object.debuginfo">__debugInfo()</link></title>
+   <programlisting role="php">
 <![CDATA[
 <?php
 class C {
@@ -350,9 +451,9 @@
 var_dump(new C(42));
 ?>
 ]]>
-    </programlisting>
-    &example.outputs;
-    <screen>
+   </programlisting>
+   &example.outputs;
+   <screen>
 <![CDATA[
 object(C)#1 (1) {
   ["propSquared"]=>
@@ -361,7 +462,7 @@
 ]]>
     </screen>
    </example>
-  </sect2>
+ </sect2>
 </sect1>

 <!-- Keep this comment at the end of the file

Modified: phpdoc/ru/trunk/reference/var/functions/serialize.xml
===================================================================
--- phpdoc/ru/trunk/reference/var/functions/serialize.xml	2020-04-03 04:30:35 UTC (rev 349602)
+++ phpdoc/ru/trunk/reference/var/functions/serialize.xml	2020-04-03 04:49:31 UTC (rev 349603)
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 346043 Maintainer: shein Status: ready -->
+<!-- EN-Revision: 349590 Maintainer: shein Status: ready -->
 <!-- Reviewed: yes -->
 <!-- $Revision$ -->
 <refentry xml:id="function.serialize" xmlns="http://docbook.org/ns/docbook">
-<refnamediv>
+ <refnamediv>
   <refname>serialize</refname>
-  <refpurpose>Генерирует пригодное для хранения представление переменной</refpurpose>
+ <refpurpose>Генерирует пригодное для хранения представление переменной</refpurpose>
  </refnamediv>

  <refsect1 role="description">
   &reftitle.description;
-   <methodsynopsis>
-    <type>string</type><methodname>serialize</methodname>
-    <methodparam><type>mixed</type><parameter>value</parameter></methodparam>
-   </methodsynopsis>
+  <methodsynopsis>
+   <type>string</type><methodname>serialize</methodname>
+   <methodparam><type>mixed</type><parameter>value</parameter></methodparam>
+  </methodsynopsis>
   <para>
    Генерирует пригодное для хранения представление переменной.
   </para>
@@ -26,7 +26,7 @@
    функцию <function>unserialize</function>.
   </para>
  </refsect1>
-
+
  <refsect1 role="parameters">
   &reftitle.parameters;
   <para>
@@ -44,12 +44,14 @@
        ссылки будут потеряны.
       </para>
       <para>
-       При сериализации объекта PHP пытается вызвать магический метод
+       При сериализации объекта PHP пытается вызвать магические методы
+       <link linkend="object.serialize">__serialize()</link> или
        <link linkend="object.sleep">__sleep()</link> перед сериализацией.
        Это делается для того, чтобы позволить объекту в последний
        момент произвести очистку и тому подобные операции перед сериализацией.
        Аналогично, когда объект восстанавливается функцией
-       <function>unserialize</function>, вызывается магический метод <link linkend="object.wakeup">__wakeup()</link>.
+       <function>unserialize</function>, вызывается магический метод <link linkend="object.unserialize">__unserialize()</link> или
+       <link linkend="object.wakeup">__wakeup()</link>.
       </para>
       <note>
        <para>
@@ -63,7 +65,7 @@
    </variablelist>
   </para>
  </refsect1>
-
+
  <refsect1 role="returnvalues">
   &reftitle.returnvalues;
   <para>
@@ -77,7 +79,7 @@
    базы данных, а не в полях типа CHAR или TEXT.
   </para>
  </refsect1>
-
+
  <refsect1 role="examples">
   &reftitle.examples;
   <para>
@@ -107,7 +109,7 @@
    </example>
   </para>
  </refsect1>
-
+
  <refsect1 role="notes">
   &reftitle.notes;
   <note>
@@ -116,8 +118,8 @@
     сериализовано. Однако, те из них, которые поддерживают эту
     возможность, реализуют или интерфейс
     <interfacename>Serializable</interfacename>, или
-    магические методы <link linkend="object.sleep">__sleep()</link>
-    и <link linkend="object.wakeup">__wakeup()</link>. Если
+    магические методы <link linkend="object.serialize">__serialize()</link>/<link linkend="object.unserialize">__unserialize()</link>
+    или <link linkend="object.sleep">__sleep()</link>/<link linkend="object.wakeup">__wakeup()</link>. Если
     встроенный класс не удовлетворяет этим требованиям,
     он не может быть надежно сериализован.
    </para>
@@ -136,7 +138,7 @@
    </para>
   </warning>
  </refsect1>
-
+
  <refsect1 role="seealso">
   &reftitle.seealso;
   <para>
@@ -147,10 +149,12 @@
     <member><link linkend="language.oop5.serialization">Сериализация объектов</link></member>
     <member><link linkend="object.sleep">__sleep()</link></member>
     <member><link linkend="object.wakeup">__wakeup()</link></member>
+    <member><link linkend="object.serialize">__serialize()</link></member>
+    <member><link linkend="object.unserialize">__unserialize()</link></member>
    </simplelist>
   </para>
  </refsect1>
-
+
 </refentry>

 <!-- Keep this comment at the end of the file

Modified: phpdoc/ru/trunk/reference/var/functions/unserialize.xml
===================================================================
--- phpdoc/ru/trunk/reference/var/functions/unserialize.xml	2020-04-03 04:30:35 UTC (rev 349602)
+++ phpdoc/ru/trunk/reference/var/functions/unserialize.xml	2020-04-03 04:49:31 UTC (rev 349603)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 349581 Maintainer: shein Status: ready -->
+<!-- EN-Revision: 349590 Maintainer: shein Status: ready -->
 <!-- Reviewed: yes -->
 <!-- $Revision$ -->
 <refentry xml:id="function.unserialize" xmlns="http://docbook.org/ns/docbook">
@@ -52,8 +52,8 @@
       </para>
       <para>
        Если переменная, требующая десериализации, является объектом, то после успешного
-       восстановления объекта PHP автоматически попытается вызвать магический метод
-       <link linkend="object.wakeup">__wakeup()</link> (если он существует).
+       восстановления объекта PHP автоматически попытается вызвать магические метод
+       <link linkend="object.unserialize">__unserialize()</link> или <link linkend="object.wakeup">__wakeup()</link> (если он существует).
       </para>
       <para>
        <note>
@@ -248,6 +248,8 @@
     <member><link linkend="language.oop5.autoload">Автоматическая загрузка классов</link></member>
     <member><link linkend="ini.unserialize-callback-func">unserialize_callback_func</link></member>
     <member><link linkend="object.wakeup">__wakeup()</link></member>
+    <member><link linkend="object.serialize">__serialize()</link></member>
+    <member><link linkend="object.unserialize">__unserialize()</link></member>
    </simplelist>
   </para>
  </refsect1>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.