Преобразование массива в объект в PHP. Как скопировать массив в PHP
2026-03-10 13:15 Diff

Теги: php, массив, объект, преобразовать, копирование

В этой статье поговорим, как преобразовать массив в объект и как создать ссылку на массив и скопировать его. Начнём с преобразования — здесь нам поможет приведение массива к типу object. Как только мы выполним преобразование массива в тип object, произойдёт создание нового экземпляра встроенного в PHP класса stdClass.

1. Преобразование массива

Итак, представьте, что у нас есть ассоциативный массив, и мы желаем преобразовать его в объект.

<?php // наш исходный массив $array = array( 0 => 'Вселенная', 'galaxy' => 'Млечный путь', 'planetary-system' => 'Солнечная система', 'planet' => 'Земля', 'continent' => 'Европа', 'country' => 'Россия', 'city' => 'Москва' ); // приведём массив к типу object $object = (object)$array; // выведем массив print_r($object);

Теперь посмотрим на stdClass

stdClass Object ( [0] => Вселенная [galaxy] => Млечный путь [planetary-system] => Солнечная система [planet] => Земля [continent] => Европа [country] => Россия [city] => Москва )

Обращаемся к членам объекта в PHP

После выполнения преобразования ряд элементов нашего объекта (бывшего массива) мы можем получить как член класса, если они отвечают правилам именования переменной (тут следует понимать, что правильное имя должно начинаться с буквы либо символа подчеркивания, а также состоять из цифр, букв и символов подчеркивания в любом количестве).

<?php // бывший элемент $array['galaxy'] echo $object->galaxy; // Млечный путь

Переменное имя свойства

Если ключ нашего элемента содержал другие символы (допустим, дефис), получить значение мы сможем лишь при помощи переменного имени свойства.

<?php echo $object->{"planetary-system"}; // Солнечная система // либо так $key = "planetary-system"; echo $object->$key; // Солнечная система

Числовые ключи

Если же ключ был числовым, получить значение из объекта в PHP мы можем лишь при помощи итераций foreach:

<?php foreach ($object as $key => $value) { echo $key . ': ' . $value . '<br/>'; }

Вот наш результат:

0: Вселенная (Universe) galaxy: Млечный путь (Milky way) planetary-system: Солнечная система (Solar system) planet: Земля (Earth) continent: Европа (Europe) country: Россия (Russia) city: Москва (Moscow)

2. Создание ссылки и копирование массива

Теперь перейдём ко второй части нашей статьи. На самом деле, скопировать массив в PHP несложно:

<?php $array = array("one", "two", "three"); print_r($array); $new_array = $array; unset($array[0]); echo "<hr>"; print_r($new_array); ?>

Смотрим результат:

Что касается создания ссылки на массив в PHP, то нам надо всего лишь добавить амперсант:

<?php $array = array("one", "two", "three"); print_r($array); $new_array = &$array; unset($array[0]); echo "<hr>"; print_r($new_array); ?>

Получаем:

На этом всё, приобрести более глубокие навыки PHP-программирования вы сможете на наших курсах: