mirror of
https://github.com/php/doc-ru.git
synced 2025-07-22 18:26:31 +00:00
docs(ru): Updated to English revision
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@349603 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 8e00768efc67a12ffec14d5dab06962936f27619 Maintainer: irker Status: ready -->
|
||||
<!-- EN-Revision: e1438a020bbc755a27f18235a0ea94f3d9d556aa 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,62 +43,62 @@
|
||||
</simpara>
|
||||
</caution>
|
||||
|
||||
<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">
|
||||
<type>void</type><methodname>__wakeup</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<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>
|
||||
Функция <function>serialize</function> проверяет, присутствует ли в вашем
|
||||
классе метод с магическим именем <link linkend="object.sleep">__sleep()</link>.
|
||||
Если это так, то этот метод выполняется до любой операции сериализации. Он может
|
||||
очистить объект и должен возвращать массив с именами
|
||||
всех переменных этого объекта, которые должны быть сериализованы.
|
||||
Если метод ничего не возвращает, то сериализуется &null; и
|
||||
выдается предупреждение <constant>E_NOTICE</constant>.
|
||||
Недопустимо возвращать в <link linkend="object.sleep">__sleep()</link>
|
||||
имена закрытых свойств в родительском классе. Это
|
||||
приведет к ошибке уровня <constant>E_NOTICE</constant>.
|
||||
Вместо этого вы можете использовать интерфейс
|
||||
<classname>Serializable</classname>.
|
||||
</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">
|
||||
</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
|
||||
@ -127,32 +129,131 @@ class Connection
|
||||
$this->connect();
|
||||
}
|
||||
}?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="language.oop5.magic.serialize">
|
||||
<title>
|
||||
<link linkend="object.serialize">__serialize()</link> и
|
||||
<link linkend="object.unserialize">__unserialize()</link>
|
||||
</title>
|
||||
|
||||
<methodsynopsis xml:id="object.serialize">
|
||||
<modifier>public</modifier> <type>array</type><methodname>__serialize</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<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.serialize">__serialize()</link>. Если да, функция
|
||||
выполняется перед любой сериализацией. Она должна создать и вернуть ассоциативный массив пар ключ/значение,
|
||||
которые представляют сериализованную форму объекта.
|
||||
Если массив не возвращен, будет выдано <classname>TypeError</classname>.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
Если и <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.serialize">__serialize()</link> для определения удобного для сериализации
|
||||
произвольного представления объекта. Элементы массива могут соответствовать свойствам объекта, но это не обязательно.
|
||||
</para>
|
||||
<para>
|
||||
И наоборот, <function>unserialize</function> проверяет
|
||||
наличие магической функции <link linkend="object.unserialize">__unserialize()</link>.
|
||||
Если функция присутствует, ей будет передан
|
||||
восстановленный массив, который был возвращен из <link linkend="object.serialize">__serialize()</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">
|
||||
<![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 __serialize(): array
|
||||
{
|
||||
return [
|
||||
'dsn' => $this->dsn,
|
||||
'user' => $this->username,
|
||||
'pass' => $this->password,
|
||||
];
|
||||
}
|
||||
|
||||
public function __unserialize(array $data): void
|
||||
{
|
||||
$this->dsn = $data['dsn'];
|
||||
$this->username = $data['user'];
|
||||
$this->password = $data['pass'];
|
||||
|
||||
$this->connect();
|
||||
}
|
||||
}?>
|
||||
]]>
|
||||
</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 @@ $class = new TestClass('Привет');
|
||||
echo $class;
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Привет
|
||||
]]>
|
||||
@ -195,26 +296,26 @@ echo $class;
|
||||
метода <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,35 +330,35 @@ $obj(5);
|
||||
var_dump(is_callable($obj));
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
int(5)
|
||||
bool(true)
|
||||
]]>
|
||||
</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 @@ var_dump($b);
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
object(A)#2 (2) {
|
||||
["var1"]=>
|
||||
@ -312,25 +413,25 @@ object(A)#2 (2) {
|
||||
лежит на разработчике.
|
||||
</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 @@ class C {
|
||||
var_dump(new C(42));
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
object(C)#1 (1) {
|
||||
["propSquared"]=>
|
||||
@ -361,7 +462,7 @@ object(C)#1 (1) {
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 18da52a5352ecfddf316d05a9201e685d9068384 Maintainer: shein Status: ready -->
|
||||
<!-- EN-Revision: e1438a020bbc755a27f18235a0ea94f3d9d556aa 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 @@ if (!odbc_execute($stmt, $sqldata)) {
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
<refsect1 role="notes">
|
||||
&reftitle.notes;
|
||||
<note>
|
||||
@ -116,8 +118,8 @@ if (!odbc_execute($stmt, $sqldata)) {
|
||||
сериализовано. Однако, те из них, которые поддерживают эту
|
||||
возможность, реализуют или интерфейс
|
||||
<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 @@ if (!odbc_execute($stmt, $sqldata)) {
|
||||
</para>
|
||||
</warning>
|
||||
</refsect1>
|
||||
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
@ -147,10 +149,12 @@ if (!odbc_execute($stmt, $sqldata)) {
|
||||
<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
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: d4e3166e8c00cd0bb3468d34e2170306c8cdbc03 Maintainer: shein Status: ready -->
|
||||
<!-- EN-Revision: e1438a020bbc755a27f18235a0ea94f3d9d556aa 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 @@ function mycallback($classname)
|
||||
<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>
|
||||
|
Reference in New Issue
Block a user