Skip to content

Instantly share code, notes, and snippets.

@artemrogov
Created August 18, 2018 10:14
Show Gist options
  • Save artemrogov/657668301549b72e3e208e1c17c8c1cf to your computer and use it in GitHub Desktop.
Save artemrogov/657668301549b72e3e208e1c17c8c1cf to your computer and use it in GitHub Desktop.
extract — Импортирует переменные из массива в текущую таблицу символов
/*
EXTR_OVERWRITE Если переменная с таким именем существует, она будет перезаписана.
EXTR_SKIP Если переменная с таким именем существует, ее текущее значение не будет перезаписано.
EXTR_PREFIX_SAME сли переменная с таким именем существует, к её имени будет добавлен префикс, определённый параметром prefix
EXTR_PREFIX_ALL Добавить префикс prefix ко всем именам переменных.
EXTR_PREFIX_INVALID Добавить префикс prefix только к некорректным/числовым именам переменных.
EXTR_IF_EXISTS Перезаписать только переменные, уже имеющиеся в текущей таблице символов, в противном случае не делать ничего.
Данная возможность полезна для определения списка приемлемых переменных и для извлечения только тех переменных,
которые вы уже определили из массивов типа $_REQUEST, например.
EXTR_PREFIX_IF_EXISTS Создать только префикс-версии переменных,
если версия данной переменной без префикса уже существует в текущей символьной таблице.
EXTR_REFS Извлечь переменные как ссылки. Это означает, что значения таких переменных будут всё ещё ссылаться на значения массива array.
Вы можете использовать этот флаг отдельно или комбинировать его с другими значениями flags с помощью побитового 'или'.
*/
$param = 12;
$vars = ['param'=>21, 'param_2'=>3, 'param_3'=>1];
extract($vars, EXTR_PREFIX_SAME, 'var');
print_r($param); // 12
print_r($var_param); // 21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment