Home » Программирование » Короткие заметки » Распаковка массивов с помощью динамических переменных

Распаковка массивов с помощью динамических переменных

Существует любопытный способ распаковки массива с помощью динамических переменных.

А именно, в цикле foreach ключи некоторого массива $myArray становятся самостоятельными переменными:

foreach ($myArray as $key => $value) {
${$key} = $value;
}

Что интересно, даже в такой продвинутой IDE, как phpStorm, вы не увидите в отладчике этих переменных до тех пор, пока не произведёте в коде с ними какого-нибудь действия. Их как будто просто не существует!

В результате после такой распаковки вместо переменных типа $myArray[‘property1’] мы можем оперировать простыми переменными $property1, что делает код более читабельным.

Само собой, если исходный массив должен дополняться или модифицироваться, такой способ вряд ли пригодится. Но очень часто из одного метода в другой таким образом передаются наборы каких-то параметров, которые удобнее оформлять в виде массива, а не громоздкого перечня параметров метода в его сигнатуре. И тогда распаковка может сделать код намного более читабельным, а переменные будут называться так, как они назывались в предыдущей части кода.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Do NOT follow this link or you will be banned from the site!