takagi          Fri Mar 10 03:45:55 2006 UTC

  Modified files:              
    /phpdoc/en/reference/var/functions  var-export.xml 
  Log:
  Added the another example to show how to use __set_state() (bug #36674)
  
  
http://cvs.php.net/viewcvs.cgi/phpdoc/en/reference/var/functions/var-export.xml?r1=1.12&r2=1.13&diff_format=u
Index: phpdoc/en/reference/var/functions/var-export.xml
diff -u phpdoc/en/reference/var/functions/var-export.xml:1.12 
phpdoc/en/reference/var/functions/var-export.xml:1.13
--- phpdoc/en/reference/var/functions/var-export.xml:1.12       Tue Mar  7 
01:12:15 2006
+++ phpdoc/en/reference/var/functions/var-export.xml    Fri Mar 10 03:45:54 2006
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.12 $ -->
+<!-- $Revision: 1.13 $ -->
 <!-- splitted from ./en/functions/var.xml, last change in rev 1.6 -->
 <refentry id="function.var-export">
  <refnamediv>
@@ -152,6 +152,51 @@
     </screen>
    </example>
   </para>
+  <para>
+   <example>
+    <title>Using <link 
linkend="language.oop5.magic.set-state">__set_state</link> (since PHP 
5.1.0)</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+class A
+{
+    public $var1;
+    public $var2;
+
+    public static function __set_state($an_array)
+    {
+        $obj = new A;
+        $obj->var1 = $an_array['var1'];
+        $obj->var2 = $an_array['var2'];
+        return $obj;
+    }
+}
+
+$a = new A;
+$a->var1 = 5;
+$a->var2 = 'foo';
+
+eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
+                                            //    'var1' => 5,
+                                            //    'var2' => 'foo',
+                                            // ));
+var_dump($b);
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+object(A)#2 (2) {
+  ["var1"]=>
+  int(5)
+  ["var2"]=>
+  string(3) "foo"
+}
+]]>
+    </screen>
+   </example>
+  </para>
  </refsect1>
 
  <refsect1 role="notes">

Reply via email to