php-doc-en/reference/weakref/book.xml
2013-05-23 17:38:21 +00:00

92 lines
1.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<book xml:id="book.weakref" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Weak References</title>
<titleabbrev>Weakref</titleabbrev>
<preface xml:id="intro.weakref">
&reftitle.intro;
<para>
Weak references provide a non-intrusive gateway to ephemeral objects. Unlike
normal (strong) references, weak references do not prevent the garbage
collector from freeing that object. For this reason, an object may be
destroyed even though a weak reference to that object still exists. In such
conditions, the weak reference seamlessly becomes invalid.
</para>
<para>
<example>
<title><classname>Weakref</classname> usage example</title>
<programlisting role="php">
<![CDATA[
<?php
class MyClass {
public function __destruct() {
echo "Destroying object!\n";
}
}
$o1 = new MyClass;
$r1 = new Weakref($o1);
if ($r1->valid()) {
echo "Object still exists!\n";
var_dump($r1->get());
} else {
echo "Object is dead!\n";
}
unset($o1);
if ($r1->valid()) {
echo "Object still exists!\n";
var_dump($r1->get());
} else {
echo "Object is dead!\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!
]]>
</screen>
</example>
</para>
</preface>
&reference.weakref.setup;
&reference.weakref.weakref;
&reference.weakref.weakmap;
</book>
<!-- 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
-->