HTML Diff
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 &lt;?php // наш исходный массив $array = array( 0 =&gt; 'Вселенная', 'galaxy' =&gt; 'Млечный путь', 'planetary-system' =&gt; 'Солнечная система', 'planet' =&gt; 'Земля', 'continent' =&gt; 'Европа', 'country' =&gt; 'Россия', 'city' =&gt; 'Москва' ); // приведём массив к типу object $object = (object)$array; // выведем массив print_r($object);<p>Теперь посмотрим на stdClass</p>
5 &lt;?php // наш исходный массив $array = array( 0 =&gt; 'Вселенная', 'galaxy' =&gt; 'Млечный путь', 'planetary-system' =&gt; 'Солнечная система', 'planet' =&gt; 'Земля', 'continent' =&gt; 'Европа', 'country' =&gt; 'Россия', 'city' =&gt; 'Москва' ); // приведём массив к типу object $object = (object)$array; // выведем массив print_r($object);<p>Теперь посмотрим на stdClass</p>
6 stdClass Object ( [0] =&gt; Вселенная [galaxy] =&gt; Млечный путь [planetary-system] =&gt; Солнечная система [planet] =&gt; Земля [continent] =&gt; Европа [country] =&gt; Россия [city] =&gt; Москва )<h3>Обращаемся к членам объекта в PHP</h3>
6 stdClass Object ( [0] =&gt; Вселенная [galaxy] =&gt; Млечный путь [planetary-system] =&gt; Солнечная система [planet] =&gt; Земля [continent] =&gt; Европа [country] =&gt; Россия [city] =&gt; Москва )<h3>Обращаемся к членам объекта в PHP</h3>
7 <p>После выполнения преобразования ряд элементов нашего объекта (бывшего массива) мы можем получить как член класса, если они отвечают правилам именования переменной (тут следует понимать, что правильное имя должно начинаться с буквы либо символа подчеркивания, а также состоять из цифр, букв и символов подчеркивания в любом количестве).</p>
7 <p>После выполнения преобразования ряд элементов нашего объекта (бывшего массива) мы можем получить как член класса, если они отвечают правилам именования переменной (тут следует понимать, что правильное имя должно начинаться с буквы либо символа подчеркивания, а также состоять из цифр, букв и символов подчеркивания в любом количестве).</p>
8 &lt;?php // бывший элемент $array['galaxy'] echo $object-&gt;galaxy; // Млечный путь<h3>Переменное имя свойства</h3>
8 &lt;?php // бывший элемент $array['galaxy'] echo $object-&gt;galaxy; // Млечный путь<h3>Переменное имя свойства</h3>
9 <p>Если ключ нашего элемента содержал другие символы (допустим, дефис), получить значение мы сможем лишь при помощи переменного имени свойства.</p>
9 <p>Если ключ нашего элемента содержал другие символы (допустим, дефис), получить значение мы сможем лишь при помощи переменного имени свойства.</p>
10 &lt;?php echo $object-&gt;{"planetary-system"}; // Солнечная система // либо так $key = "planetary-system"; echo $object-&gt;$key; // Солнечная система<h3>Числовые ключи</h3>
10 &lt;?php echo $object-&gt;{"planetary-system"}; // Солнечная система // либо так $key = "planetary-system"; echo $object-&gt;$key; // Солнечная система<h3>Числовые ключи</h3>
11 <p>Если же ключ был числовым, получить значение из объекта в PHP мы можем лишь при помощи итераций foreach:</p>
11 <p>Если же ключ был числовым, получить значение из объекта в PHP мы можем лишь при помощи итераций foreach:</p>
12 &lt;?php foreach ($object as $key =&gt; $value) { echo $key . ': ' . $value . '&lt;br/&gt;'; }<p>Вот наш результат:</p>
12 &lt;?php foreach ($object as $key =&gt; $value) { echo $key . ': ' . $value . '&lt;br/&gt;'; }<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 &lt;?php $array = array("one", "two", "three"); print_r($array); $new_array = $array; unset($array[0]); echo "&lt;hr&gt;"; print_r($new_array); ?&gt;<p>Смотрим результат:</p>
15 &lt;?php $array = array("one", "two", "three"); print_r($array); $new_array = $array; unset($array[0]); echo "&lt;hr&gt;"; print_r($new_array); ?&gt;<p>Смотрим результат:</p>
16 <p>Что касается создания ссылки на массив в PHP, то нам надо всего лишь добавить амперсант:</p>
16 <p>Что касается создания ссылки на массив в PHP, то нам надо всего лишь добавить амперсант:</p>
17 &lt;?php $array = array("one", "two", "three"); print_r($array); $new_array = &amp;$array; unset($array[0]); echo "&lt;hr&gt;"; print_r($new_array); ?&gt;<p>Получаем:</p>
17 &lt;?php $array = array("one", "two", "three"); print_r($array); $new_array = &amp;$array; unset($array[0]); echo "&lt;hr&gt;"; print_r($new_array); ?&gt;<p>Получаем:</p>
18 <p>На этом всё, приобрести более глубокие навыки PHP-программирования вы сможете на наших курсах:</p>
18 <p>На этом всё, приобрести более глубокие навыки PHP-программирования вы сможете на наших курсах:</p>
19  
19