1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/reference/pthreads/volatile.xml

143 lines
4.0 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.volatile" role="class">
<title>Класс Volatile</title>
<titleabbrev>Volatile</titleabbrev>
<partintro>
<!-- {{{ Volatile intro -->
<section xml:id="volatile.intro">
&reftitle.intro;
<simpara>
Класс <classname>Volatile</classname> появился в pthreads v3.
Его введение является следствием новой семантики неизменности
<classname>Threaded</classname>-свойств классов <classname>Threaded</classname>.
Класс <classname>Volatile</classname> включает иммутабельность
их <classname>Threaded</classname>-свойств и, также, используется для
хранения массивов PHP в контексте <classname>Threaded</classname>.
</simpara>
</section>
<!-- }}} -->
<section xml:id="volatile.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>Volatile</classname></ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>Volatile</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>Threaded</classname>
</ooclass>
<oointerface>
<interfacename>Collectable</interfacename>
</oointerface>
<oointerface>
<interfacename>Traversable</interfacename>
</oointerface>
</classsynopsisinfo>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<section xml:id="volatile.examples">
&reftitle.examples;
<example xml:id="volatile.example.immutable"><!-- {{{ -->
<title>Новая семантика иммутабельности Threaded</title>
<programlisting role="php">
<![CDATA[
<?php
class Task extends Threaded
{
public function __construct()
{
$this->data = new Threaded();
// попытка переопределить Threaded-свойство Threaded-класса (ошибка)
$this->data = new stdClass();
}
}
var_dump((new Task())->data);
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
RuntimeException: Threaded members previously set to Threaded objects are immutable, cannot overwrite data in %s:%d
]]>
</screen>
</example><!-- }}} -->
<example xml:id="volatile.example.basic"><!-- {{{ -->
<title>Пример использования Volatile</title>
<programlisting role="php">
<![CDATA[
<?php
class Task extends Volatile
{
public function __construct()
{
$this->data = new Threaded();
// попытка переопределить Threaded-свойство Volatile-класса (корректно)
$this->data = new stdClass();
}
}
var_dump((new Task())->data);
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
object(stdClass)#3 (0) {
}
]]>
</screen>
</example><!-- }}} -->
</section>
</partintro>
</reference>
<!-- 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
-->