Rumah > pembangunan bahagian belakang > tutorial php > php数组转码的有关问题

php数组转码的有关问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-13 13:33:27
asal
788 orang telah melayarinya

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<?php class 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>

Salin selepas log masuk
Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan