Преобразование объекта PHP в ассоциативный массив

  1. Используйте ключевое слово array для преобразования типа объекта StdClass в ассоциативный массив в PHP
  2. Используйте объект StdClass внутри пользовательского класса для преобразования объекта в ассоциативный массив в PHP
  3. Используйте функции json_encode() и json_decode() для преобразования объекта в ассоциативный массив в PHP

Мы представим метод преобразования объекта PHP в ассоциативный массив, задавая типы объектов StdClass с помощью ключевого слова array. Для отображения ассоциативного массива воспользуемся функцией var_dump().

Второй подход демонстрирует другой метод преобразования объекта PHP в ассоциативный массив, создающий StdClass в конструкторе определяемого пользователем класса. Преобразуем объект в ассоциативный массив, как в первом методе, с помощью ключевого слова array. Этот метод следует объектно-ориентированному подходу.

Мы также представим еще один метод преобразования объекта в ассоциативный массив в PHP с использованием функций json_encode() и json_decode(). Мы будем использовать StdClass для создания объекта и динамических свойств.

Используйте ключевое слово array для преобразования типа объекта StdClass в ассоциативный массив в PHP

Мы можем создать пустой класс StdClass для создания объекта в PHP и использовать объект для создания свойств. Объект класса может напрямую обращаться к свойствам. Он также может создавать динамические свойства для класса. Мы можем использовать объект массив для преобразования типа объекта в массив. Функция var_dump() выводит информацию о типе и значениях массива.

Например, создайте объект $object класса StdClass с помощью оператора new. Создайте два свойства, используя $object с именами car1 и car2. Присвойте свойствам значения porsche и bugatti. Используйте ключевое слово array для приведения типа переменной $object. Оберните ключевое слово array круглыми скобками перед переменной $object и выгрузите значение с помощью функции var_dump(). В приведенном ниже примере объекты преобразуются в ассоциативный массив, как показано в разделе вывода. Он показывает пары ключ и значение для каждого элемента массива.

Пример кода:

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

Выход:

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

Используйте объект StdClass внутри пользовательского класса для преобразования объекта в ассоциативный массив в PHP

Мы можем создать экземпляр StdClass в конструкторе класса и использовать ключевое слово array для преобразования объекта класса в ассоциативный массив. Мы можем создать класс и определить некоторые его свойства. Конструктор класса инициализирует свойства класса конкретными значениями. Мы можем создать объект StdClass и присвоить ему одно из свойств класса. Оператор new вместе с классом вызывает конструктор. Мы можем использовать ключевое слово array прямо перед вызовом, чтобы преобразовать объект класса в ассоциативный массив.

Например, создать класс Мотоцикл. Создайте три свойства класса с модификатором доступа private как $name, $color и $type. Создайте конструктор класса и внутри конструктора инициализируйте значения свойств. Напишите Husky для name, white для color и создайте объект StdClass для type. Используйте ключевое слово $this для инициализации свойств. Вне класса вызовите класс Motorcycle и используйте ключевое слово array для приведения типов перед вызовом. Используйте функцию var_dump(), чтобы вывести информацию о типизированном массиве.

Пример кода:

#php 7.x 
class Motorcycle{
    private $name;
    private $color;
    private $type;
    public function __construct(){
        $this->name = "Husky";
        $this->color = "white";
        $this->type = new StdClass;
    }
}
var_dump( (array) new Motorcycle );

Выход:

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

Используйте функции json_encode() и json_decode() для преобразования объекта в ассоциативный массив в PHP

Функция json_encode() кодирует значение в объект JSON, а функция json_decode() преобразует объект JSON в объект PHP. Логическое значение, второй параметр функции json_decode(), указывает, какой объект JSON должен быть преобразован. Значение true преобразует объект JSON в ассоциативный массив, а значение false преобразует его в объект PHP.

Например, создать объект StdClass и присвоить его переменной $object. Назовите два значения свойства объекта Mustang и Manang и сохраните их в переменных place1 и place2. Используйте функцию json_encode() для переменной $object и сохраните значение в переменной $json. Затем используйте функцию json_decode() для переменной $json и используйте логическое значение true в качестве второго параметра. Сохраните значение в переменной $array. Выгрузите переменную с помощью функции var_dump().

В приведенном ниже примере переменная $object содержит объект StdClass. Функция json_ecode() конвертирует объект в строку JSON. Функция json_decode() конвертирует строку JSON в ассоциативный массив.

Пример кода:

#php 7.x 
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>

Выход:

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }

Сопутствующая статья - PHP Object

  • Создать объект без класса в PHP