Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как создать "составное имя" переменной?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
NeuroZ
Отправлено: 22 Февраля, 2015 - 15:14:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


Помог: 2 раз(а)




Например у меня есть массив с именами.
$arr = ['One', 'Two', 'Three'];
Далее есть несколько переменных, в которые надо записать какие-то значения. Например
$columnsOne;
$columnsTwo;
$columnsThree;

Вот вопрос - как проходя по циклу, динамически, создать переменные с этими именами. Что-то вроде:
PHP:
скопировать код в буфер обмена
  1. foreach ($arr as $val) {
  2. $columns.$val = 'какое-то значение';
  3. }

Понятное дело, что запись неверная. Суть в том, чтобы после цикла иметь переменные с именами columnsOne и т.п. Возможно ли как-то это сделать?
 
 Top
Мелкий Супермодератор
Отправлено: 22 Февраля, 2015 - 15:38:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Используйте нормальные массивы.

Если докажете, что нужны именно разные переменные с динамическими именами - тогда назову два способа.


-----
PostgreSQL DBA
 
 Top
NeuroZ
Отправлено: 22 Февраля, 2015 - 15:59:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


Помог: 2 раз(а)




Конкретно в этой задаче я пользуюсь именно массивами.

Просто задал вопрос на ее примере, т.к. вспомнил, что раньше сталкивался с такой необходимостью в ООП при создании конструктора обработки данных, а ответа так и не нашел.
 
 Top
Мелкий Супермодератор
Отправлено: 22 Февраля, 2015 - 16:06:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Необходимости в этом столько же, сколько в GOTO: избегать любыми средствами, пока не будет чёткой аргументации, что да, такое решение позволит сделать простое и изящное решение задачи. Но и в этом случае подумать ещё раз.и внимательно задокументировать все "за"


-----
PostgreSQL DBA
 
 Top
NeuroZ
Отправлено: 22 Февраля, 2015 - 16:14:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


Помог: 2 раз(а)




Мелкий пишет:
Необходимости в этом столько же, сколько в GOTO: избегать любыми средствами, пока не будет чёткой аргументации, что да, такое решение позволит сделать простое и изящное решение задачи. Но и в этом случае подумать ещё раз.и внимательно задокументировать все "за"

Ок)) приду когда будет конкретная задача и аргументы)
 
 Top
Ts.Saltan
Отправлено: 22 Февраля, 2015 - 16:21:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




PHP:
скопировать код в буфер обмена
  1. $arr = ['One', 'Two', 'Three'];
  2.  
  3. foreach ($arr as $val) {
  4.    $var = 'columns'.$val;
  5.    $$var = 'какое-то значение';
  6. }
  7.  
  8. var_dump(get_defined_vars()); //Выведет список объявленных переменных
  9.  

(Отредактировано автором: 22 Февраля, 2015 - 16:23:34)

 
 Top
armancho7777777 Супермодератор
Отправлено: 22 Февраля, 2015 - 18:05:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




PHP:
скопировать код в буфер обмена
  1. extract(array('One' => 1, 'Two' => 2, 'Three' => 3), EXTR_PREFIX_ALL, "columns");
  2. echo $columns_Two; // 2

(Отредактировано автором: 22 Февраля, 2015 - 18:09:09)

 
 Top
NeuroZ
Отправлено: 23 Февраля, 2015 - 18:05:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


Помог: 2 раз(а)




Круто... спасибо)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB