Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для UchihaSV
286 / 235 / 113
Регистрация: 08.06.2013
Сообщений: 725

Сокращение при переборе массива foreach

04.04.2014, 11:22. Показов 1337. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень часто вижу в ООП стиле(в классах) такую вот конструкцию:
PHP
1
2
3
foreach ($this->vars as $key => $value) {
    $$key = $value;
}
Сперва я думал, что кто-то по ошибке 2 раза написал символ $, так как при подсветке синтаксиса, первый знак как бы игнорируется(не подсвечивается).

Но потом увидев, что таких "опечаток" очень много во всяких мануалах(где не объясняют почему и для чего 2 раза подряд идет этот символ) до меня дошло что это какое-то сокращение.
Может это особенность foreach или ООП стиля? Я просто привык к процедурному стилю.

Я конечно же попытался в это прогуглить, но тщетно.

Может здесь кто-нибудь разъяснит это дело по подробней?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2014, 11:22
Ответы с готовыми решениями:

Дублирование данных при переборе foreach
Добрый день. Помогите найти ошибку, уже несколько раз с нуля переписывал. В общем пытаюсь вывести меню. Меню выводится и сортируется в...

При переборе многомерного массива выдает ошибку
$array=array(1,2,3,4,array(1,2,3,5)); foreach($array as $key){ foreach ($key as $keys){ echo $keys; } } Выводиться вот...

Принцип работы foreach при переборе элементов управления
Доброго дня, форумчане. Имеется форма с 9 TextBox. В программе необходимо из коллекции внести значения в эти TextBox. Делаю так: ...

3
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
04.04.2014, 11:58
Цитата Сообщение от UchihaSV Посмотреть сообщение
Может это особенность foreach или ООП стиля?
это особенность php
1
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
04.04.2014, 16:14
Это магия. Это плохая идея. Эта дурацкая фича в общем случае может для Вас похерить и суперглобальные переменные, не моргнув глазом и без зазрения совести. Кто знает, что там за $key попадётся.
1
05.04.2014, 22:44

Не по теме:

Нефорычка :)

PHP
1
extract((array)$this->vars);

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2014, 22:44
Помогаю со студенческими работами здесь

При переборе массива методом filter, если не не находит совпадение с условием, то вывести весь список с массива
Доброго времени суток! помогите разобраться, я методом filter перебираю массив значений, какое нужно прописать условие, если совпадений...

Откуда в данном коде при компиляции появляется нулевая ссылка,при переборе массива?
Заранее извиняюсь за копи паст с книги class Dog { String name; public static void main (String args) { // Создаем объект Dog...

Signal code: 11 при переборе массива
; (const int* arr, size_t size, int item) ; edi, esi, edx include: mov rcx, rsi .c:;cmp edx, cmp...

Ошибка при переборе массива с использованием указателей
Собственно сабж. Есть код int m = {4,5,46,57,35,65,35,55,45,95}; for (int *p = &m; p<&m; p++) { cout...

Указать функцию List и вызвать ее при переборе массива
Добрый день! Я не могу понять как указать функцию в массиве, и главное как ее потом вызывать, при переборе массива? Пример массива: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru