Home > Article > Backend Development > How to convert object to array in php
How to convert object to array in php: 1. Use the type conversion function ((array)), PHP will use the public properties of the object as the key, and the value of the property as the corresponding array value; 2. Use the reflection class (ReflectionClass), through the `getProperties()` method of the reflection class, we can get all the properties of the object. Then, pass the `setAccessible(true)` method and so on; 3. Use json_encode().
The operating environment of this tutorial: windows10 system, php8.1.3 version, DELL G3 computer.
In PHP, an object (Object) is a special type of data structure that can save different types of data and functions. The opposite of an object is an array, which is an ordered collection that can store multiple values. In some cases, we may need to convert an object into an array to facilitate data processing and manipulation in the program. This article will introduce several methods on how to convert objects into arrays in PHP.
1. Use type conversion function ((array))
PHP provides a simple and fast way to convert objects into arrays, that is, through type conversion functions Convert object to array. This can be achieved by prepending "(array)" to the object. An example is as follows:
class Person { public $name = "John"; public $age = 30; } $person = new Person(); $array = (array) $person; print_r($array);
The output result is:
Array ( [name] => John [age] => 30 )
As shown above, through the type conversion function, PHP will use the public properties of the object as the key, and the value of the property as the corresponding array value.
However, the disadvantage of the type conversion function is that it can only handle the public properties of the object, and private properties and protected properties cannot be converted to arrays. To solve this problem, we can use other methods to convert the object to an array.
2. Use ReflectionClass
ReflectionClass is a powerful built-in class in PHP that can be used to obtain class information and operations of objects object. Through reflection class we can get all the properties of the object and convert them into array. The following is a sample code that uses the reflection class to convert an object into an array:
class Person { public $name = "John"; private $age = 30; } $person = new Person(); $reflectionClass = new ReflectionClass($person); $properties = $reflectionClass->getProperties(); $array = []; foreach ($properties as $property) { $property->setAccessible(true); $array[$property->getName()] = $property->getValue($person); } print_r($array);
The output result is:
Array ( [name] => John )
As shown above, through the `getProperties()` method of the reflection class, we can obtain All properties of the object. Then, through the `setAccessible(true)` method, we can force access to the private property. Finally, get the attribute name through the `getName()` method, get the attribute value through the `getValue()` method, and save it to an array.
3. Use json_encode() and json_decode()
In addition to the above methods, we can also convert objects into arrays by using the json_encode() and json_decode() functions . This approach is very simple and easy to understand, but may impact performance, especially when dealing with large objects. The following is a sample code that uses the json_encode() and json_decode() functions to convert an object into an array:
class Person { public $name = "John"; private $age = 30; } $person = new Person(); $jsonString = json_encode($person); $array = json_decode($jsonString, true); print_r($array);
The output result is:
Array ( [name] => John )
As shown above, first, pass the json_encode() function to The object is converted to a JSON string, and then the JSON string is converted back to an array via the json_decode() function. It should be noted that the second parameter of the json_decode() function needs to be set to true to ensure that the JSON string is decoded into an associative array.
Summary:
This article introduces three methods of converting objects to arrays in PHP: using type conversion functions ((array)); using reflection classes ( ReflectionClass); use json_encode() and json_decode() functions. Developers can choose the appropriate method based on actual needs. No matter which method you choose, you can realize the function of converting objects into arrays, which facilitates data processing and operations in the program. .
The above is the detailed content of How to convert object to array in php. For more information, please follow other related articles on the PHP Chinese website!