0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Напомню, что деструктуризация (дестракчеринг) - специальный синтаксис, позволяющий извлекать части из составных данных. Самый простой пример, который<a>мы рассмотрели</a>, - извлечение значений массива из двух элементов.</p>
1
<p>Напомню, что деструктуризация (дестракчеринг) - специальный синтаксис, позволяющий извлекать части из составных данных. Самый простой пример, который<a>мы рассмотрели</a>, - извлечение значений массива из двух элементов.</p>
2
<p>На части можно раскладывать не только индексированные, но и ассоциативные массивы, извлекая из них значения по определённым ключам.</p>
2
<p>На части можно раскладывать не только индексированные, но и ассоциативные массивы, извлекая из них значения по определённым ключам.</p>
3
<p>Теперь переменные $lastname и $firstname содержат соответствующие значения. Имена самих переменных выбираются произвольно, главное - совпадение по ключам.</p>
3
<p>Теперь переменные $lastname и $firstname содержат соответствующие значения. Имена самих переменных выбираются произвольно, главное - совпадение по ключам.</p>
4
<p>PHP допускает вложенную деструктуризацию. С ее помощью можно получать значения не только внешнего массива, но и вложенных.</p>
4
<p>PHP допускает вложенную деструктуризацию. С ее помощью можно получать значения не только внешнего массива, но и вложенных.</p>
5
<p>Деструктуризацию ассоциативного массива можно комбинировать с деструктуризацией индексированного.</p>
5
<p>Деструктуризацию ассоциативного массива можно комбинировать с деструктуризацией индексированного.</p>
6
<p>Деструктуризация возможна и в циклах:</p>
6
<p>Деструктуризация возможна и в циклах:</p>
7
<h2>Извлечение</h2>
7
<h2>Извлечение</h2>
8
<p>Кроме описанного выше, в PHP существует ещё один способ деструктуризации, который на первый взгляд кажется проще. Вызов функции extract с переданным ассоциативным массивом приводит к тому, что создаются переменные с именами ключей, в которые записываются значения из массива.</p>
8
<p>Кроме описанного выше, в PHP существует ещё один способ деструктуризации, который на первый взгляд кажется проще. Вызов функции extract с переданным ассоциативным массивом приводит к тому, что создаются переменные с именами ключей, в которые записываются значения из массива.</p>
9
<p>Ни в одном другом популярном языке нет возможности создать переменные без явного определения переменных. Данный способ обладает массой недостатков и поэтому не рекомендуется к использованию. Перечислим их:</p>
9
<p>Ни в одном другом популярном языке нет возможности создать переменные без явного определения переменных. Данный способ обладает массой недостатков и поэтому не рекомендуется к использованию. Перечислим их:</p>
10
<ul><li>Переменные всегда создаются для всех ключей массива. Они засоряют локальное окружение и могут приводить к ошибкам если пересекутся с названиями уже существующих переменных.</li>
10
<ul><li>Переменные всегда создаются для всех ключей массива. Они засоряют локальное окружение и могут приводить к ошибкам если пересекутся с названиями уже существующих переменных.</li>
11
<li>Безопасность. Если содержимое массива приходит извне (из формы или базы данных), то есть потенциальная вероятность попадания в массив ключа, который приведёт к перезаписыванию значения существующей переменной.</li>
11
<li>Безопасность. Если содержимое массива приходит извне (из формы или базы данных), то есть потенциальная вероятность попадания в массив ключа, который приведёт к перезаписыванию значения существующей переменной.</li>
12
<li>Неявное создание переменных вообще само по себе странная штука (и нигде не встречается!). Такой код значительно сложнее в анализе.</li>
12
<li>Неявное создание переменных вообще само по себе странная штука (и нигде не встречается!). Такой код значительно сложнее в анализе.</li>
13
</ul>
13
</ul>