Hướng dẫn php class to array - lớp php thành mảng

Chỉ cần đánh máy nó

Nội dung chính ShowShow

  • Làm cách nào để chuyển đổi một chuỗi thành một mảng trong PHP?
  • Làm thế nào để bạn chuyển đổi một phần tử thành một mảng?
  • Làm cách nào để chuyển đổi một chuỗi thành một mảng?
  • Bạn sẽ nhận được mảng nào nếu bạn chuyển đổi một đối tượng thành một mảng trong PHP?

$array = (array) $yourObject;

Từ mảng:

Nếu một đối tượng được chuyển đổi thành một mảng, kết quả là một mảng có các phần tử là thuộc tính của đối tượng. Các khóa là tên biến thành viên, với một vài ngoại lệ đáng chú ý: các thuộc tính số nguyên không thể truy cập được; Các biến riêng có tên lớp được chuẩn bị cho tên biến; Các biến được bảo vệ có '*' được chuẩn bị cho tên biến. Các giá trị được chuẩn bị này có byte null ở hai bên.

Ví dụ: Đối tượng đơn giản

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );

Output:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}

Ví dụ: Đối tượng phức tạp

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );

Đầu ra (với \ 0S được chỉnh sửa cho rõ ràng):

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}

Đầu ra với

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
6 thay vì
array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
7:
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)

Typecasting theo cách này sẽ không thực hiện việc đúc sâu của biểu đồ đối tượng và bạn cần áp dụng các byte null (như được giải thích trong trích dẫn thủ công) để truy cập bất kỳ thuộc tính không công khai nào. Vì vậy, điều này hoạt động tốt nhất khi đúc các đối tượng hoặc đối tượng stdclass chỉ có các thuộc tính công cộng. Để nhanh chóng và bẩn (những gì bạn yêu cầu) nó ổn.

Cũng xem bài đăng trên blog chuyên sâu này:

  • Đối tượng PHP nhanh để chuyển đổi mảng

Hướng dẫn php class to array - lớp php thành mảng

Đã trả lời ngày 3 tháng 12 năm 2010 lúc 12:40Dec 3, 2010 at 12:40Dec 3, 2010 at 12:40

GordongordonGordonGordon

308K72 Huy hiệu vàng527 Huy hiệu bạc552 Huy hiệu đồng72 gold badges527 silver badges552 bronze badges72 gold badges527 silver badges552 bronze badges

20

Bạn có thể nhanh chóng chuyển đổi các đối tượng lồng nhau thành các mảng kết hợp bằng cách dựa vào hành vi của các hàm mã hóa/giải mã JSON:

$array = json_decode(json_encode($nested_object), true);

Elia Weiss

7.39212 Huy hiệu vàng63 Huy hiệu bạc100 Huy hiệu Đồng12 gold badges63 silver badges100 bronze badges12 gold badges63 silver badges100 bronze badges

Đã trả lời ngày 19 tháng 4 năm 2013 lúc 18:56Apr 19, 2013 at 18:56Apr 19, 2013 at 18:56

Jeff Standenjeff StandenJeff StandenJeff Standen

6.3401 Huy hiệu vàng15 Huy hiệu bạc17 Huy hiệu đồng1 gold badge15 silver badges17 bronze badges1 gold badge15 silver badges17 bronze badges

12

Từ bản hit đầu tiên của Google cho "Php Object to PGS mảng", chúng tôi có điều này:

function object_to_array($data)
{
    if (is_array($data) || is_object($data))
    {
        $result = [];
        foreach ($data as $key => $value)
        {
            $result[$key] = (is_array($value) || is_object($value)) ? object_to_array($value) : $value;
        }
        return $result;
    }
    return $data;
}

Nguồn là tại CodeSnippets.joyent.com.


Để so sánh nó với giải pháp của

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
8, cái này có vẻ nhanh hơn. Dưới đây là một điểm chuẩn ngẫu nhiên (sử dụng đo thời gian đơn giản):
$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
1

8

Nếu thuộc tính đối tượng của bạn là công khai, bạn có thể làm:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
2

Nếu chúng là riêng tư hoặc được bảo vệ, chúng sẽ có tên khóa kỳ lạ trên mảng. Vì vậy, trong trường hợp này, bạn sẽ cần chức năng sau:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
0

Đã trả lời ngày 15 tháng 4 năm 2013 lúc 19:48Apr 15, 2013 at 19:48Apr 15, 2013 at 19:48

Ramon K.Ramon K.Ramon K.Ramon K.

3.3693 huy hiệu vàng18 Huy hiệu bạc26 Huy hiệu đồng3 gold badges18 silver badges26 bronze badges3 gold badges18 silver badges26 bronze badges

6

Còn

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
9 thì sao? Có vẻ hữu ích nếu bạn chỉ muốn truy cập các thuộc tính công khai của một đối tượng.

Xem get_object_vars.

Đã trả lời ngày 11 tháng 12 năm 2013 lúc 14:21Dec 11, 2013 at 14:21Dec 11, 2013 at 14:21

JoejoeJoeJoe

2522 Huy hiệu bạc9 Huy hiệu Đồng2 silver badges9 bronze badges2 silver badges9 bronze badges

0

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
1

Đầu ra

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
2

Đã trả lời ngày 9 tháng 1 năm 2014 lúc 2:41Jan 9, 2014 at 2:41Jan 9, 2014 at 2:41

IsiusisiusIsiusIsius

6.3722 Huy hiệu vàng21 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges21 silver badges31 bronze badges2 gold badges21 silver badges31 bronze badges

1

Nhập đúc đối tượng của bạn vào một mảng.

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
3

Nó sẽ giải quyết vấn đề của bạn.

Đã trả lời ngày 3 tháng 12 năm 2010 lúc 12:50Dec 3, 2010 at 12:50Dec 3, 2010 at 12:50

AdeeladeelAdeelAdeel

6051 Huy hiệu vàng6 Huy hiệu bạc16 Huy hiệu đồng1 gold badge6 silver badges16 bronze badges1 gold badge6 silver badges16 bronze badges

2

Đây là một số mã:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
4

Đã trả lời ngày 20 tháng 9 năm 2011 lúc 15:33Sep 20, 2011 at 15:33Sep 20, 2011 at 15:33

KhalidkhalidKhalidKhalid

1391 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges1 silver badge2 bronze badges

1

Tất cả các câu trả lời khác được đăng ở đây chỉ làm việc với các thuộc tính công cộng. Dưới đây là một giải pháp hoạt động với các đối tượng giống như Javabeans bằng cách sử dụng phản xạ và getters:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
5

Đã trả lời ngày 5 tháng 2 năm 2013 lúc 11:09Feb 5, 2013 at 11:09Feb 5, 2013 at 11:09

4

Để chuyển đổi một đối tượng thành mảng, chỉ cần đúc nó một cách rõ ràng:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
6

Đã trả lời ngày 29 tháng 6 năm 2015 lúc 12:53Jun 29, 2015 at 12:53Jun 29, 2015 at 12:53

Bạn cũng có thể tạo một chức năng trong PHP để chuyển đổi một mảng đối tượng:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
7

Đã trả lời ngày 27 tháng 2 năm 2017 lúc 9:51Feb 27, 2017 at 9:51Feb 27, 2017 at 9:51

Rakhi Prajapatirakhi PrajapatiRakhi PrajapatiRakhi Prajapati

8021 Huy hiệu vàng12 Huy hiệu bạc22 Huy hiệu đồng1 gold badge12 silver badges22 bronze badges1 gold badge12 silver badges22 bronze badges

0

Sử dụng:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
8

Nó trả về một mảng không có ký tự đặc biệt và tên lớp.

Sebastian

1.2076 huy hiệu bạc18 Huy hiệu đồng6 silver badges18 bronze badges6 silver badges18 bronze badges

Đã trả lời ngày 12 tháng 6 năm 2014 lúc 19:24Jun 12, 2014 at 19:24Jun 12, 2014 at 19:24

ovniaovniaovniaovnia

2.3704 Huy hiệu vàng31 Huy hiệu bạc54 Huy hiệu đồng4 gold badges31 silver badges54 bronze badges4 gold badges31 silver badges54 bronze badges

1

Trước hết, nếu bạn cần một mảng từ một đối tượng, bạn có thể nên tạo thành dữ liệu như một mảng trước. Nghĩ về nó.

Không sử dụng câu lệnh

array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
0 hoặc các phép biến đổi JSON. Nếu bạn đang lên kế hoạch này, một lần nữa bạn làm việc với cấu trúc dữ liệu, không phải với một đối tượng.

Nếu bạn thực sự cần nó sử dụng một cách tiếp cận hướng đối tượng để có mã sạch và có thể bảo trì. Ví dụ:

Đối tượng dưới dạng mảng

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
9

Nếu bạn cần tất cả các thuộc tính, hãy sử dụng đối tượng chuyển:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
0

Đã trả lời ngày 27 tháng 2 năm 2016 lúc 9:32Feb 27, 2016 at 9:32Feb 27, 2016 at 9:32

John Smithjohn SmithJohn SmithJohn Smith

1.0558 Huy hiệu bạc17 Huy hiệu đồng8 silver badges17 bronze badges8 silver badges17 bronze badges

1

Bạn có thể dễ dàng sử dụng chức năng này để có được kết quả:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
1

Sử dụng PHP & nbsp; 5 trở lên.PHP 5 or later.PHP 5 or later.

Đã trả lời ngày 3 tháng 6 năm 2016 lúc 8:56Jun 3, 2016 at 8:56Jun 3, 2016 at 8:56

Giải pháp ngắn của @spyk3hh

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
2

Đã trả lời ngày 25 tháng 1 năm 2017 lúc 12:17Jan 25, 2017 at 12:17Jan 25, 2017 at 12:17

Abdul Rehmanabdul RehmanAbdul RehmanAbdul Rehman

1.5683 huy hiệu vàng23 Huy hiệu bạc35 Huy hiệu đồng3 gold badges23 silver badges35 bronze badges3 gold badges23 silver badges35 bronze badges

Dưới đây là chức năng PHP đệ quy của tôi để chuyển đổi các đối tượng PHP thành mảng kết hợp:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
3

Ví dụ sử dụng:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
4

Đã trả lời ngày 3 tháng 2 năm 2014 lúc 14:38Feb 3, 2014 at 14:38Feb 3, 2014 at 14:38

Rabattorabattorabattorabatto

511 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges1 silver badge2 bronze badges

2

Chức năng tùy chỉnh để chuyển đổi stdclass thành mảng:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
5

Một chức năng tùy chỉnh khác để chuyển đổi mảng thành stdclass:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
6

Ví dụ sử dụng:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
7

Đã trả lời ngày 3 tháng 2 năm 2014 lúc 14:38Feb 3, 2014 at 14:38Feb 25, 2014 at 19:24

RabattorabattorabattoRounds

511 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges4 gold badges19 silver badges30 bronze badges

Chức năng tùy chỉnh để chuyển đổi stdclass thành mảng:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
8

Một chức năng tùy chỉnh khác để chuyển đổi mảng thành stdclass:Jan 26, 2017 at 11:55

Đã trả lời ngày 25 tháng 2 năm 2014 lúc 19:24Feb 25, 2014 at 19:24

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
9

Vòng trònRoundsJul 17, 2012 at 22:43

1.8694 Huy hiệu vàng19 Huy hiệu bạc 30 Huy hiệu Đồng4 gold badges19 silver badges30 bronze badgesmetaldog

Ngoài ra, bạn có thể sử dụng thành phần symfony serializer1 silver badge2 bronze badges

2

Đã trả lời ngày 26 tháng 1 năm 2017 lúc 11:55Jan 26, 2017 at 11:55

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
0

Bạn có thể muốn làm điều này khi bạn lấy dữ liệu dưới dạng đối tượng từ cơ sở dữ liệu:Jun 8, 2016 at 15:48

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 22:43Jul 17, 2012 at 22:43Daniel Guerrero

Metaldogmetaldogmetaldog1 gold badge2 silver badges8 bronze badges

711 huy hiệu bạc2 huy hiệu đồng1 silver badge2 bronze badges

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
1

Câu trả lời này chỉ là sự kết hợp của các câu trả lời khác nhau của bài đăng này, nhưng đó là giải pháp để chuyển đổi một đối tượng PHP bằng các thuộc tính công khai hoặc riêng tư với các giá trị hoặc mảng đơn giản thành một mảng kết hợp ...

Đã trả lời ngày 8 tháng 6 năm 2016 lúc 15:48Jun 8, 2016 at 15:48

Daniel Guerrerodaniel GuerreroDaniel GuerreroJul 24, 2015 at 13:23

1841 Huy hiệu vàng2 Huy hiệu bạc8 Huy hiệu đồng1 gold badge2 silver badges8 bronze badges

Một số bừa bộn cho mã "tốt"

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
2

Lưu ý rằng nếu hàm là thành viên của một lớp (như trên), bạn phải thay đổi

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
3

array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
1 thành
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
2

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
4

Đã trả lời ngày 24 tháng 7 năm 2015 lúc 13:23Jul 24, 2015 at 13:23

Đối với trường hợp của bạn, nó là đúng/đẹp nếu bạn sử dụng các mẫu "trang trí" hoặc "biến đổi mô hình ngày". Ví dụ:Feb 16, 2019 at 16:32

Mô hình của bạn

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
5

Người trang trí

Cách sử dụngFeb 3, 2014 at 8:54

Vì vậy, nó sẽ đẹp hơn và mã chính xác hơn.Fedir RYKHTIK

Đã trả lời ngày 16 tháng 2 năm 2019 lúc 16:32Feb 16, 2019 at 16:326 gold badges55 silver badges67 bronze badges

Chuyển đổi và loại bỏ các ngôi sao khó chịu:

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
6

Có lẽ, nó sẽ rẻ hơn so với sử dụng phản xạ.Mar 22, 2018 at 12:52

Đã trả lời ngày 3 tháng 2 năm 2014 lúc 8:54Feb 3, 2014 at 8:54

array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
3

Fedir Rykhtikfedir RykhtikFedir RYKHTIK

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
7

9.6346 Huy hiệu vàng55 Huy hiệu bạc67 Huy hiệu Đồng6 gold badges55 silver badges67 bronze badgesMay 6, 2016 at 16:07

Có đề xuất của tôi, nếu bạn có các đối tượng trong các đối tượng với các thành viên riêng tư:

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
8

Đã trả lời ngày 22 tháng 3 năm 2018 lúc 12:52Mar 22, 2018 at 12:52

class Foo
{
    private $foo;
    protected $bar;
    public $baz;

    public function __construct()
    {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
9

Vì nhiều người tìm thấy câu hỏi này vì gặp sự cố với các thuộc tính truy cập động của một đối tượng, tôi sẽ chỉ ra rằng bạn có thể làm điều này trong PHP: Apr 20, 2017 at 9:31

Trong bối cảnh (đã loại bỏ đầu ra HTML cho khả năng đọc):

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
0

Đã trả lời ngày 6 tháng 5 năm 2016 lúc 16:07May 6, 2016 at 16:07Jun 12, 2019 at 20:35

Bằng cách sử dụng typecasting, bạn có thể giải quyết vấn đề của mình. Chỉ cần thêm các dòng sau vào đối tượng trả về của bạn:

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
1

Bạn cũng có thể thêm một cặp khóa và giá trị mới vào nó bằng cách sử dụng:

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
2

Sẽ in cái này:

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
3

Đã trả lời ngày 20 tháng 12 năm 2019 lúc 9:06Dec 20, 2019 at 9:06Dec 20, 2019 at 9:06

Ling Linglingling

8.8134 Huy hiệu vàng48 Huy hiệu bạc46 Huy hiệu đồng4 gold badges48 silver badges46 bronze badges4 gold badges48 silver badges46 bronze badges

2

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
4

Đã trả lời ngày 7 tháng 5 năm 2014 lúc 10:11May 7, 2014 at 10:11May 7, 2014 at 10:11

1

Ở đây tôi đã tạo một phương thức objectToArray (), cũng hoạt động với các đối tượng đệ quy, như khi

array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
4 chứa
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
5 một lần nữa chỉ ra
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
4.objectToArray() method, which also works with recursive objects, like when
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
4 contains
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
5 which points again to
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
4.objectToArray() method, which also works with recursive objects, like when
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
4 contains
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
5 which points again to
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
4.

Ngoài ra, tôi đã giới hạn đầu ra cho các thuộc tính công cộng bằng cách sử dụng Class ReflectionClass. Loại bỏ nó, nếu bạn không cần nó.

array(3) {
  '\0Foo\0foo' => int(1)
  '\0*\0bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
5

Để xác định các đối tượng đã được sử dụng, tôi đang sử dụng một thuộc tính được bảo vệ trong lớp (Tóm tắt) này, được đặt tên là

array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
7. Nếu một đối tượng lồng nhau được tìm thấy, nó sẽ được thay thế bằng chuỗi
array (
  '' . "\0" . 'Foo' . "\0" . 'foo' => 1,
  '' . "\0" . '*' . "\0" . 'bar' => 2,
  'baz' =>
  stdClass::__set_state(array(
  )),
)
8. Nếu không, nó sẽ thất bại vì vòng lặp vô hạn.

Đã trả lời ngày 15 tháng 5 năm 2015 lúc 0:31May 15, 2015 at 0:31May 15, 2015 at 0:31

ArminarminArminArmin

15K9 Huy hiệu vàng46 Huy hiệu bạc63 Huy hiệu Đồng9 gold badges46 silver badges63 bronze badges9 gold badges46 silver badges63 bronze badges

1

Làm cách nào để chuyển đổi một chuỗi thành một mảng trong PHP?

Sau đây là danh sách đầy đủ các phương thức có thể được sử dụng trong PHP để chuyển đổi chuỗi thành một mảng ....

hàm str_split () ..

nổ tung ("Delimiter", String).

hàm preg_split () ..

Chức năng str_word_count () ..

Vòng lặp thủ công qua chuỗi ..

hàm json_decode () ..

chức năng unserialize () ..

Làm thế nào để bạn chuyển đổi một phần tử thành một mảng?

Approach:.. .

Lưu trữ giá trị số nguyên trong một biến ..

Typecast số nguyên thành một chuỗi ..

Sử dụng phương thức Split () để biến nó thành một loạt các chuỗi ..

Lặp lại trên mảng đó bằng phương thức bản đồ () ..

Sử dụng phương thức bản đồ () trả về mảng chuỗi thành một mảng số nguyên ..

Làm cách nào để chuyển đổi một chuỗi thành một mảng?

Trong Java, có bốn cách để chuyển đổi một chuỗi thành một mảng chuỗi:...

Sử dụng chuỗi.Chia () Phương thức ..

Sử dụng mẫu.Chia () Phương thức ..

Sử dụng chuỗi [] tiếp cận ..

Sử dụng phương thức toarray () ..

Bạn sẽ nhận được mảng nào nếu bạn chuyển đổi một đối tượng thành một mảng trong PHP?

Nếu một đối tượng được chuyển đổi thành một mảng, kết quả là một mảng có các phần tử là thuộc tính của đối tượng.an array whose elements are the object's properties.an array whose elements are the object's properties.