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 :: Вставить переменные в языковую конструкцию list()
Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010
Помог: 3 раз(а)
Есть функция в которую передается переменное число параметров. Через func_get_args() эти переменные можно получить. Возможно ли как-то теперь эти переменные вставить в языковую конструкцию list(переменныеПереданныеВФункцию)?
----- У всего есть обратная сторона.
DlTA
Отправлено: 03 Апреля, 2012 - 01:23:41
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
list(.......)=func_get_args();
EuGen
Отправлено: 03 Апреля, 2012 - 09:11:51
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Однако непонятно, зачем так делать - т.к. все преимущество func_get_args() теряется (ведь придется определять список параметров для list непосредственно, а значит, проще перечислить параметры просто в заголовке функции)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
zypikov
Отправлено: 03 Апреля, 2012 - 15:19:00
Частый гость
Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010
Помог: 3 раз(а)
Цитата:
т.к. все преимущество func_get_args() теряется
Ну разумеется теряется. Смысл моего вопроса именно в том, возможно ли сформировать список переменных для конструкции list из ВСЕХ переменных переданных в функцию?
Т.е. не указывая непосредственно в конструкции list имена переменных, как вашем примере EnGen.
Передал я , к примеру, в test 4 переменные, list попали 4 переменные; передал 2 переменные, в list попали 2 переменные.
----- У всего есть обратная сторона.
EuGen
Отправлено: 03 Апреля, 2012 - 15:25:43
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
zypikov
Именно list() - нет, не получится. Но можно сделать наподобие такого:
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
zypikov
Отправлено: 05 Апреля, 2012 - 12:30:50
Частый гость
Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010
Помог: 3 раз(а)
Может в php6 такое возможно будет сделать?
С get_defined_vars() это хоть какой-то выход.
пасиб за помощь EuGen.
----- У всего есть обратная сторона.
EuGen
Отправлено: 05 Апреля, 2012 - 12:51:53
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
zypikov
Это и в PHP 5 будет работать (предполагаю, что исходную задачу это все же решает, как того и требовалось)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
zypikov
Отправлено: 07 Апреля, 2012 - 22:08:00
Частый гость
Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010
Помог: 3 раз(а)
EuGen пишет:
Это и в PHP 5 будет работать (предполагаю, что исходную задачу это все же решает, как того и требовалось)Это и в PHP 5 будет работать (предполагаю, что исходную задачу это все же решает, как того и требовалось).
EnGen, или я вас сейчас не пойму или вы меня не поняли. Я подразумевал, свой первый вопрос.
zypikov пишет:
Есть функция в которую передается переменное число параметров. Через func_get_args() эти переменные можно получить. Возможно ли как-то теперь эти переменные вставить в языковую конструкцию list(переменныеПереданныеВФункцию)?
Я объясню какую задачу хочу решить, т.е. упростить себе жизнь
Есть база в текстовом файле, например, date||name||describe||foto1_foto2..||fieldN
хочу вытягивать переменные date и name на одной ветке if, на другой ветке describe
и делать это все с помощью одной функции, например, vte_Extract(). А уж потом делать с ними че захочешь.
Причем любой из этих параметров может быть составным, как, например, foto1_foto2.., который бъется тоже на переменные через "_".
Или вот я захотел, например, добавить(или удалить) параметр, да еще и в определенное место, между describe||foto1_foto2..||. Выходит нужно будет менять в позиции переменных в конструкции list(variables).
Поэтому решил в значение переменной указывать ее положение в строке разбития. Причем если переменная является массивом, то переменную еще нужно разбивать (в массиве передавать параметром разделитель). И в этом случае, чтобы переменную извлечь нужно просто в ее значение указать ее номер или, если это массив, передать еще разделитель.
Но сначала не продумал, что свой функцией я генерирую строку и тупо вставить в list() ее не получиться. Единственный выход писать строку в пхп файл и потом ее инклюдить.
Т.е. идея в том, чтобы получить хоть чуток масштабируемый тестовую базу. Чтобы можно было любой пар-р удалить, добавить, сделать составным и не перелопачивать все скрипты.
В связи с этим есть вопросы:
Если например, в конструкции list(var1,,var3) пропускать 3 переменную, то измениться ли производительность, если list(var1,var2,var3) 2 переменную извлекать?
Стоит ли вообще делать сайты на текстовой базе? Или все поглотил mysql и текстовая база скатывается на обочину историию..?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.