Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сгенерировать имя переменной 
:(
    Опции темы
yalo
Дата 23.10.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



здравствуйте всем
такая вот вроде простая с первого взгляда задача.
нужно сгенерировать имя переменной, например, пробегая по какому-нибудь массиву: foreach ($array as $key => $value), скрипт будет генерировать имя переменной таким образом: $PLACE.$key, но напрямую так разумеется ничего не получится, так как скрипт соединит ЗНАЧЕНИЯ переменных $PLACE и $key, а мне надо чтобы имя переменной генерировалось: $PLACE3, $PLACE5, где 3 и 5 это $key при прохождении массива. Затем в сгенерированную переменную будут заносится значения, в принципе не важно какие. 
PM MAIL ICQ   Вверх
flashaa
Дата 23.10.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Символическая ссылка 
Код

$name = 'PLACE' . $key;
$$name ;


Это сообщение отредактировал(а) flashaa - 23.10.2007, 10:53
PM MAIL   Вверх
yalo
Дата 23.10.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



а как дальше занести в полученной что-то? во что заносить?
PM MAIL ICQ   Вверх
flashaa
Дата 23.10.2007, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



вот твоя переменная  - $$name
PM MAIL   Вверх
yalo
Дата 23.10.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



ничего себе smile 
а мне уже два авторитетных человека сказали, что это скорее всего нерешаемо
вот спасибо-то, пребольшое smile 
с меня плюсикsmile
PM MAIL ICQ   Вверх
flashaa
Дата 23.10.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Все решаемо, PHP достаточно гибкий язык.

Код

foreach ($array as $key => $value) {
    
    $name = 'PLACE' . $key;
    $$name = ... ; // общаемся к переменной, имя которой равно 'PLACE' плюс значение текущего ключа.

}


Только вот не пойму, зачем такое может понадобиться.
PM MAIL   Вверх
skyboy
Дата 23.10.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(flashaa @  23.10.2007,  10:26 Найти цитируемый пост)
Только вот не пойму, зачем такое может понадобиться.

точно. гораздо лучше создать ассоциативный массив. зачем усложнять себе жизнь?
PM MAIL   Вверх
yalo
Дата 23.10.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



это нужно мне в банерокрутилке, вытаскивается массив баннерных мест с включенными в данный момент там банерами, в шаблон html будут идти в разные места {PLACE3}, {PLACE5} и т.д. Это даже и не переменные и не константы.. Их потом будет основной скрипт заменять на значения через preg_match_all, str_replace... массив $place[] здесь бы не подошел.. В общем, может быть, это и ни не самый лучший вариант обработки, но дело в том, что выбирать не приходится - cms чужая, была еще до моего прихода, и стартовать мне пока следует от нее.. вот.

Добавлено через 4 минуты и 32 секунды
Цитата(skyboy @  23.10.2007,  11:30 Найти цитируемый пост)
гораздо лучше создать ассоциативный массив. зачем усложнять себе жизнь? 

согласна, но применительно к данному программному продукту, ничего не получится, для шаблонов должны быть только просто переменные, не являющиеся какими-либо массивами, и как раз  в данный момент, когда горит проект, изобретать новый (пусть даже свой и может быть более лучший) способ обработки данных для выходного шаблона будет действительно гораздо более длительным занятием
PM MAIL ICQ   Вверх
skyboy
Дата 23.10.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



yalo, т.е. если в шаблоне всечается "{place5}" оно меняется на значение переменной $place5?
может тогда в процедуре замены сделать замену не на некое $$name, а на $assoc_array[$name]?
Проще будет устанавливать значения в одном массиве(особенно - проще отлаживать: можно вывести все шаблонные переменные разом), да и замена будет проще($template_vars - массив с переменными шаблона, $template - шаблон):
Код

foreach($template_vars as $name => $value) {
 $template= str_ireplace('{'.$name.'}',$value,$template);
}

впрочем, я специфики не знаю, может и правда - 
Цитата(yalo @  23.10.2007,  10:36 Найти цитируемый пост)
изобретать новый [...] способ обработки [...] будет действительно [...] длительным занятием


PM MAIL   Вверх
flashaa
Дата 25.1.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(yalo @  23.10.2007,  10:43 Найти цитируемый пост)
нужно сгенерировать имя переменной, например, пробегая по какому-нибудь массиву: foreach ($array as $key => $value),

Кстати вспомнилось: у Котерова читал, что есть такая ф-ция, которая берет массив и создает переменные как раз как надо в данной теме. Но в мануале не нашел ее. Кто-то помнит название этой ф-ции?
PM MAIL   Вверх
skyboy
Дата 25.1.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(flashaa @  25.1.2008,  11:12 Найти цитируемый пост)
 Кто-то помнит название этой ф-ции?

самому писать надо.
из стандартных механизмов с подобным действием - директива register_globals.
вот только надо ли таким заниматься?
PM MAIL   Вверх
SelenIT
Дата 25.1.2008, 13:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(flashaa @  25.1.2008,  12:12 Найти цитируемый пост)
Кто-то помнит название этой ф-ции?

extract?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
flashaa
Дата 25.1.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(skyboy @  25.1.2008,  12:48 Найти цитируемый пост)
самому писать надо.

Говорю, же есть такая ф-ция:
Цитата(SelenIT @  25.1.2008,  13:23 Найти цитируемый пост)
extract? 

Cпасибо, а обратная ей ф-ция - compact.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.