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">