Đối tượng để đánh máy mảng trong PHP là gì?

Các đối tượng và mảng là những phần thiết yếu trong lập trình hàng ngày của chúng ta. Chuyển đổi đối tượng PHP thành mảng và mảng thành đối tượng là những yêu cầu khá phổ biến. Chúng tôi đang đề cập đến ba cách mà bạn có thể sử dụng để chuyển đổi đối tượng PHP thành một mảng

Ngược lại, nếu bạn đang tìm kiếm quy trình ngược lại, tôi. e. chuyển đổi một mảng thành đối tượng thì đây là liên kết của bài viết. Có các phương thức để chuyển đổi mảng thành đối tượng cũng hoạt động trên mảng nhiều chiều

Đối tượng để đánh máy mảng trong PHP là gì?

1. Đánh máy đối tượng thành mảng

Đối tượng thành mảng hoặc chuyển đổi mảng thành đối tượng, typecasting là giải pháp dễ dàng nhất nếu đầu vào có cấu trúc tốt. Bằng các phương tiện có cấu trúc tốt, đầu vào có các khóa hợp lệ. Dưới đây là mã để đánh máy và chuyển đổi đối tượng thành mảng

Đánh máy đối tượng thành mảng

0

1

 

$mảng = (mảng) $object;

2. Chuyển đổi đối tượng PHP thành mảng bằng các hàm JSON

Các hàm JSON của PHP cũng có thể thực hiện chuyển đổi đối tượng thành mảng hoặc ngược lại một cách thông minh. Ngoài ra, nó hoạt động hoàn hảo với các đối tượng lồng nhau để chuyển đổi chúng thành một mảng kết hợp. Đây là giải pháp tốt nhất nếu bạn muốn chuyển đổi đệ quy sâu đầy đủ

Đối tượng PHP thành mảng với các hàm JSON

0

1

 

$mảng = json_decode(json_encode(object), true);

Đầu tiên, hàm json_encode() chuyển đổi đối tượng thành chuỗi JSON. Hơn nữa, tham số thứ hai trong hàm json_decode() yêu cầu PHP chuyển đổi chuỗi được mã hóa thành một mảng kết hợp

Bất chấp cách bạn sử dụng để chuyển đổi đối tượng PHP thành mảng, hãy lưu ý một số điều. Để chuyển đổi trơn tru, luôn luôn

  • Tránh tạo đối tượng StdClass với thuộc tính số nguyên. Chúng trở nên khá khó truy cập thậm chí bạn có thể nhìn thấy chúng bằng cách sử dụng print_r() hoặc tương tự
  • Khai báo các đối tượng là thành viên công khai của lớp. Nếu không, các phím mảng sẽ có các ký hiệu lạ và bẩn. Bạn có thể kiểm tra về chúng tại trang web chính thức cho PHP

3. Chuyển đối tượng sang mảng sử dụng get_object_vars()

Biến một đối tượng thành một mảng bằng get_object_vars() là một phương pháp ít được biết đến nhưng khá tốt. Ngoài ra, nền tảng viết blog phổ biến WordPress sử dụng nó rất nhiều. Một ví dụ điển hình về chuyển đổi đối tượng thành mảng được đưa ra dưới đây

Chuyển đối tượng sang mảng sử dụng get_object_vars()

0

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

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

 

lớp màu sắc {

    

    công khai $đỏ = 'ff0000';

    riêng tư $xanh = '00f00';

    được bảo vệ $xanh lam = '0000ff';

    

    công chúng $đen, $white;

    

    tĩnh $cầu vồng;

  

    hàm công khai get_object_as_array() {

        return get_object_vars($this);

    }

}

 

$clrs = mới màu;

var_dump(get_object_vars($clrs));

 

/*

mảng(3) {

["đỏ"]=>

chuỗi (6) "ff0000"

["đen"]=>

VÔ GIÁ TRỊ

["trắng"]=>

VÔ GIÁ TRỊ

}

*/

 

 

$arr = $clrs->get_object_as_array();

var_dump($arr);

 

/*

mảng(5) {

["đỏ"]=>

chuỗi (6) "ff0000"

["xanh"]=>

chuỗi (5) "00f00"

["màu xanh"]=>

chuỗi (6) "0000ff"

["đen"]=>

VÔ GIÁ TRỊ

["trắng"]=>

VÔ GIÁ TRỊ

}

*/

Vì vậy, bạn thấy rằng hàm get_object_vars() trả về một mảng kết hợp của một đối tượng đã xác định có thể truy cập được trong phạm vi. Ngoài ra, nó không nhận các thuộc tính không tĩnh cho đối tượng được chỉ định trong tài khoản. Ngoài ra, nếu một thuộc tính không chứa giá trị, nó sẽ được trả về với giá trị NULL

Các cách khác để chuyển đổi đối tượng PHP thành mảng

Cuối cùng, những điều trên là 3 cách ưa thích mà chúng tôi muốn chia sẻ để chuyển đổi một đối tượng PHP thành một mảng. Thật vậy, có nhiều cách khác cho cùng một. Lặp lại đối tượng thông qua vòng lặp foreach hoặc sử dụng API Reflection của PHP và các lệnh gọi hàm đệ quy là một vài trong số đó

Tuy nhiên, chúng tôi chưa thảo luận chi tiết về chúng ở đây vì cá nhân chúng tôi không thích những dòng mã dài cho nhu cầu chung. Tuy nhiên, chúng có thể hữu ích trong các trường hợp hacky. Vì vậy, thật đáng để cung cấp mã cho họ

Đối tượng thành mảng, phép lặp, API phản chiếu, hàm đệ quy

0

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

31

32

33

 

// Chuyển đổi thủ công sử dụng hàm đệ quy

function objectToArray($obj) {

    $arr = array();

    foreach ($obj as $k => $v)

        $a[$k] = (is_array($v) |. is_object($v) . ) ? objectToArray($v) : $v;

    return $arr;

}

 

 

/*

Reflection API, getter và setter cho chuyển đổi đối tượng thành mảng

Sửa đổi khả năng hiển thị của tài sản

*/

hàm object_to_array_reflection($obj) {

    $rfc = mới ReflectionClass(get_class($obj));

    $arr = array();

    foreach ($rfc->getProperties() as $prop) {

        $tiền đề - >setAccessible(true);

        $arr[$prop->getName()] = $prop->getValue($obj);

        $tiền đề - >setAccessible(false);

    }

    return $arr;

}

 

 

// Một chức năng tùy chỉnh khác sử dụng get_object_vars()

hàm object2Array($obj) {

    if (is_object($obj)) {

        $obj = get_object_vars($obj);

    }

    // Sử dụng __METHOD__ thay vì __FUNCTION__ nếu sử dụng hàm bên trong một lớp.

    return (is_array($obj) ? array_map(__FUNCTION__, $obj) : $obj);

}

Vì vậy, ở đây bài overs. Hãy cho chúng tôi biết cách ưa thích của bạn để chuyển đổi một đối tượng thành một mảng trong PHP. Vui lòng sử dụng mẫu nhận xét để cập nhật cho chúng tôi thông tin phản hồi của bạn

Làm cách nào để chuyển đổi mảng đối tượng thành mảng bình thường trong PHP?

Chương trình PHP chuyển đối tượng thành mảng sử dụng mã hóa json và giải mã json. $arr = json_decode(json_encode($dis), true); echo "Các mục sau khi chuyển đổi. "; var_dump($arr);

Làm cách nào để chuyển đổi một đối tượng thành một mảng kết hợp trong PHP?

Phương pháp 1. Sử dụng phương thức json_decode và json_encode . Hàm json_decode chấp nhận chuỗi được mã hóa JSON và chuyển đổi nó thành một biến PHP, mặt khác, json_encode trả về một chuỗi được mã hóa JSON cho một giá trị nhất định. cú pháp. $myArray = json_decode(json_encode($object), true);

Làm cách nào để sử dụng mảng đối tượng trong PHP?

Mục lục ¶ .
đối tượng mảng. append - Nối thêm giá trị
đối tượng mảng. asort — Sắp xếp các mục nhập theo giá trị
đối tượng mảng. __construct — Xây dựng một đối tượng mảng mới
đối tượng mảng. đếm - Lấy số lượng thuộc tính công khai trong ArrayObject
đối tượng mảng. exchangeArray - Trao đổi mảng cho một mảng khác

Làm cách nào để lưu trữ một đối tượng trong một mảng trong PHP?

Chuyển đổi một đối tượng thành một mảng bằng kỹ thuật đánh máy. túi lớp php { chức năng công khai __construct( $item1, $item2, $item3){ $this->item1 = $item1; . "