首頁 > 後端開發 > php教程 > php数组转码的有关问题

php数组转码的有关问题

WBOY
發布: 2016-06-13 10:20:01
原創
936 人瀏覽過

php数组转码的问题
public function array_iconv($in_charset,$out_charset,$arr){
return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
}
我在转码的时候出现这个问题
Fatal error: Call to undefined method stdClass::__set_state() in D:\soft\apache\htdocs\webtest\arrayiconv.func.php(5) : eval()'d code on line 1

------解决方案--------------------
手册中有:

_set_state()

static object __set_state ( array $properties )
当调用var_export()时,这个静态 方法会被调用(自PHP 5.1.0起有效)。

本方法的唯一参数是一个数组,其中包含按array('property' => value, ...)格式排列的类属性。

Example #4 使用 __set_state()> (PHP 5.1.0及更高版本支持)

PHP code
<?phpclass A{    public $var1;    public $var2;    public static function __set_state($an_array) // As of PHP 5.1.0    {        $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);?><div class="clear">
                 
              
              
        
            </div>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板