mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
169 lines
8.2 KiB
XML
169 lines
8.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: c0fa5077c8862405942d8aac7360c5169558b59b Maintainer: malferov Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<refentry xml:id="reflectionclass.resetaslazyghost" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<refnamediv>
|
||
<refname>ReflectionClass::resetAsLazyGhost</refname>
|
||
<refpurpose>Сбрасывает и помечает объект ленивым</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis role="ReflectionClass">
|
||
<modifier>public</modifier> <type>void</type><methodname>ReflectionClass::resetAsLazyGhost</methodname>
|
||
<methodparam><type>object</type><parameter>object</parameter></methodparam>
|
||
<methodparam><type>callable</type><parameter>initializer</parameter></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer>0</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<simpara>
|
||
Метод сбрасывает существующий объект <parameter>object</parameter> и помечает объект ленивым.
|
||
</simpara>
|
||
<simpara>
|
||
Метод вызывает деструктор объекта, только если деструктор определили в классе и если
|
||
указали флаг <constant>ReflectionClass::SKIP_DESTRUCTOR</constant>.
|
||
Только в отдельном случае, когда передали инициализированный прокси,
|
||
реальный экземпляр отсоединяется от прокси. Деструктор реального экземпляра
|
||
вызывается независимо от флага <constant>SKIP_DESTRUCTOR</constant>,
|
||
если ссылок на реальный экземпляр больше не осталось.
|
||
</simpara>
|
||
<simpara>
|
||
Динамические свойства удаляются, а значение свойств, которые объявили в классе,
|
||
отбрасывается, как если бы вызвали языковую конструкцию <function>unset</function>,
|
||
и объект помечается ленивым. Подразумевается, что если объект — экземпляр
|
||
подкласса с дополнительными свойствами, то эти свойства не изменяются и не становятся
|
||
ленивыми.
|
||
<link linkend="language.oop5.properties.readonly-properties">Доступные только для чтения свойства</link>
|
||
также не модифицируются и не становятся ленивыми, если такие свойства объявили окончательными
|
||
через ключевое слово <literal>final</literal> или сам класс окончательный объявили окончательным через ключевое
|
||
слово <literal>final</literal>.
|
||
</simpara>
|
||
<simpara>
|
||
Метод не помечает объект ленивым, если ни одно свойство не пометили ленивым. См.
|
||
также секцию
|
||
«<link linkend="language.oop5.lazy-objects.lifecycle">Жизненный цикл ленивых объектов</link>».
|
||
</simpara>
|
||
<simpara>
|
||
Иначе после вызова метода поведение объекта будет таким же, как у объекта, который создали
|
||
методом <methodname>ReflectionClass::newLazyGhost</methodname>, за исключением
|
||
подкласса и свойств, доступных только для чтения, как уже описывалось.
|
||
</simpara>
|
||
<simpara>
|
||
Объект не заменяется другим, и его идентификатор остается неизменным.
|
||
Поведение функций <function>spl_object_id</function>
|
||
и <function>spl_object_hash</function>,
|
||
классов <classname>SplObjectStorage</classname>, <classname>WeakMap</classname>
|
||
и <classname>WeakReference</classname>,
|
||
и <link linkend="language.oop5.object-comparison">оператора идентичности <literal>===</literal></link>
|
||
не меняется.
|
||
</simpara>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>object</parameter></term>
|
||
<listitem>
|
||
<simpara>
|
||
Неленивый объект или инициализированный ленивый объект.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>initializer</parameter></term>
|
||
<listitem>
|
||
<simpara>
|
||
Callback-функция инициализатора с той же сигнатурой и целью,
|
||
что и в описании метода <methodname>ReflectionClass::newLazyGhost</methodname>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="reflectionclass.resetaslazyghost.parameters.options">
|
||
<term><parameter>options</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Параметр <parameter>options</parameter> принимает комбинацию следующих
|
||
флагов:
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>
|
||
<constant>ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE</constant>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
По умолчанию сериализация ленивого объекта запускает его инициализацию.
|
||
Установка этого флага предотвращает инициализацию, что разрешает сериализовать
|
||
ленивые объекты без инициализации.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<constant>ReflectionClass::SKIP_DESTRUCTOR</constant>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
По умолчанию деструктор объекта, — если деструктор определили в классе, —
|
||
вызывается раньше, чем метод сделает объект ленивым. Это обеспечивает безопасность в отношении
|
||
предыдущих состояний объекта. Этот флаг отключает такое поведение и разрешает
|
||
сбрасывать объекты до ленивых без вызова деструктора.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<simpara>
|
||
&return.void;
|
||
</simpara>
|
||
</refsect1>
|
||
|
||
<refsect1 role="errors">
|
||
&reftitle.errors;
|
||
<simpara>
|
||
Метод выбросит исключение <classname>ReflectionException</classname>, если объект ленивый
|
||
и объект не инициализировали.
|
||
</simpara>
|
||
<simpara>
|
||
Метод выбросит ошибку <classname>Error</classname>, если объект инициализируется,
|
||
или если свойства объекта перебираются
|
||
конструкцией <link linkend="control-structures.foreach"><literal>foreach</literal></link>.
|
||
</simpara>
|
||
</refsect1>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<simplelist>
|
||
<member><methodname>ReflectionClass::newLazyGhost</methodname></member>
|
||
<member><methodname>ReflectionClass::resetAsLazyProxy</methodname></member>
|
||
</simplelist>
|
||
</refsect1>
|
||
|
||
</refentry>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|