0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: php, массив, объект, преобразовать, копирование</p>
1
<p>Теги: php, массив, объект, преобразовать, копирование</p>
2
<p>В этой статье поговорим, как преобразовать массив в объект и как создать ссылку на массив и скопировать его. Начнём с преобразования - здесь нам поможет приведение массива к типу object. Как только мы выполним преобразование массива в тип object, произойдёт создание нового экземпляра встроенного в PHP класса<strong>stdClass</strong>.</p>
2
<p>В этой статье поговорим, как преобразовать массив в объект и как создать ссылку на массив и скопировать его. Начнём с преобразования - здесь нам поможет приведение массива к типу object. Как только мы выполним преобразование массива в тип object, произойдёт создание нового экземпляра встроенного в PHP класса<strong>stdClass</strong>.</p>
3
<h2>1. Преобразование массива</h2>
3
<h2>1. Преобразование массива</h2>
4
<p>Итак, представьте, что у нас есть ассоциативный массив, и мы желаем преобразовать его в объект.</p>
4
<p>Итак, представьте, что у нас есть ассоциативный массив, и мы желаем преобразовать его в объект.</p>
5
<?php // наш исходный массив $array = array( 0 => 'Вселенная', 'galaxy' => 'Млечный путь', 'planetary-system' => 'Солнечная система', 'planet' => 'Земля', 'continent' => 'Европа', 'country' => 'Россия', 'city' => 'Москва' ); // приведём массив к типу object $object = (object)$array; // выведем массив print_r($object);<p>Теперь посмотрим на stdClass</p>
5
<?php // наш исходный массив $array = array( 0 => 'Вселенная', 'galaxy' => 'Млечный путь', 'planetary-system' => 'Солнечная система', 'planet' => 'Земля', 'continent' => 'Европа', 'country' => 'Россия', 'city' => 'Москва' ); // приведём массив к типу object $object = (object)$array; // выведем массив print_r($object);<p>Теперь посмотрим на stdClass</p>
6
stdClass Object ( [0] => Вселенная [galaxy] => Млечный путь [planetary-system] => Солнечная система [planet] => Земля [continent] => Европа [country] => Россия [city] => Москва )<h3>Обращаемся к членам объекта в PHP</h3>
6
stdClass Object ( [0] => Вселенная [galaxy] => Млечный путь [planetary-system] => Солнечная система [planet] => Земля [continent] => Европа [country] => Россия [city] => Москва )<h3>Обращаемся к членам объекта в PHP</h3>
7
<p>После выполнения преобразования ряд элементов нашего объекта (бывшего массива) мы можем получить как член класса, если они отвечают правилам именования переменной (тут следует понимать, что правильное имя должно начинаться с буквы либо символа подчеркивания, а также состоять из цифр, букв и символов подчеркивания в любом количестве).</p>
7
<p>После выполнения преобразования ряд элементов нашего объекта (бывшего массива) мы можем получить как член класса, если они отвечают правилам именования переменной (тут следует понимать, что правильное имя должно начинаться с буквы либо символа подчеркивания, а также состоять из цифр, букв и символов подчеркивания в любом количестве).</p>
8
<?php // бывший элемент $array['galaxy'] echo $object->galaxy; // Млечный путь<h3>Переменное имя свойства</h3>
8
<?php // бывший элемент $array['galaxy'] echo $object->galaxy; // Млечный путь<h3>Переменное имя свойства</h3>
9
<p>Если ключ нашего элемента содержал другие символы (допустим, дефис), получить значение мы сможем лишь при помощи переменного имени свойства.</p>
9
<p>Если ключ нашего элемента содержал другие символы (допустим, дефис), получить значение мы сможем лишь при помощи переменного имени свойства.</p>
10
<?php echo $object->{"planetary-system"}; // Солнечная система // либо так $key = "planetary-system"; echo $object->$key; // Солнечная система<h3>Числовые ключи</h3>
10
<?php echo $object->{"planetary-system"}; // Солнечная система // либо так $key = "planetary-system"; echo $object->$key; // Солнечная система<h3>Числовые ключи</h3>
11
<p>Если же ключ был числовым, получить значение из объекта в PHP мы можем лишь при помощи итераций foreach:</p>
11
<p>Если же ключ был числовым, получить значение из объекта в PHP мы можем лишь при помощи итераций foreach:</p>
12
<?php foreach ($object as $key => $value) { echo $key . ': ' . $value . '<br/>'; }<p>Вот наш результат:</p>
12
<?php foreach ($object as $key => $value) { echo $key . ': ' . $value . '<br/>'; }<p>Вот наш результат:</p>
13
0: Вселенная (Universe) galaxy: Млечный путь (Milky way) planetary-system: Солнечная система (Solar system) planet: Земля (Earth) continent: Европа (Europe) country: Россия (Russia) city: Москва (Moscow)<h2>2. Создание ссылки и копирование массива</h2>
13
0: Вселенная (Universe) galaxy: Млечный путь (Milky way) planetary-system: Солнечная система (Solar system) planet: Земля (Earth) continent: Европа (Europe) country: Россия (Russia) city: Москва (Moscow)<h2>2. Создание ссылки и копирование массива</h2>
14
<p>Теперь перейдём ко второй части нашей статьи. На самом деле, скопировать массив в PHP несложно:</p>
14
<p>Теперь перейдём ко второй части нашей статьи. На самом деле, скопировать массив в PHP несложно:</p>
15
<?php $array = array("one", "two", "three"); print_r($array); $new_array = $array; unset($array[0]); echo "<hr>"; print_r($new_array); ?><p>Смотрим результат:</p>
15
<?php $array = array("one", "two", "three"); print_r($array); $new_array = $array; unset($array[0]); echo "<hr>"; print_r($new_array); ?><p>Смотрим результат:</p>
16
<p>Что касается создания ссылки на массив в PHP, то нам надо всего лишь добавить амперсант:</p>
16
<p>Что касается создания ссылки на массив в PHP, то нам надо всего лишь добавить амперсант:</p>
17
<?php $array = array("one", "two", "three"); print_r($array); $new_array = &$array; unset($array[0]); echo "<hr>"; print_r($new_array); ?><p>Получаем:</p>
17
<?php $array = array("one", "two", "three"); print_r($array); $new_array = &$array; unset($array[0]); echo "<hr>"; print_r($new_array); ?><p>Получаем:</p>
18
<p>На этом всё, приобрести более глубокие навыки PHP-программирования вы сможете на наших курсах:</p>
18
<p>На этом всё, приобрести более глубокие навыки PHP-программирования вы сможете на наших курсах:</p>
19
19