Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как использовать значение переменной в качестве имени другой перем
 
 автор: roma67   (16.05.2012 в 11:54)   письмо автору
 
 

Передаем параметр функции, который является частью имени группы переменных var
Надо из одного параметра получить новые переменные. var1 var2 var3 var4
К этому параметру путем простого добавления символов получить новые имена переменных, а лучше получить ИМЕНА КОНСТАНТ

<?
var1
="1"var2="2"var3="1"var4="4";

function 
n1(param) {
  
// надо сформировать доступ к переменным var1, var2, var3, var4.....
}

// вызываю с одним параметром
n1("var");
?>

  Ответить  
 
 автор: Tamplier   (16.05.2012 в 13:25)   письмо автору
 
   для: roma67   (16.05.2012 в 11:54)
 

А если поступить проще, все переменные в один массив и в функцию?

  Ответить  
 
 автор: speedsoft   (16.05.2012 в 13:31)   письмо автору
 
   для: roma67   (16.05.2012 в 11:54)
 

<? 
var1
="1"var2="2"var3="1"var4="4"

function 
n1($param) { 
  
// надо сформировать доступ к переменным var1, var2, var3, var4..... 
return $$param


// вызываю с одним параметром 
echo n1("var1");   //1
echo n1("var2");   //2
?>

  Ответить  
 
 автор: roma67   (16.05.2012 в 13:52)   письмо автору
 
   для: speedsoft   (16.05.2012 в 13:31)
 

Я тут не понял. Конечно вопрос задал диковато я. Не получилось.

У меня есть объекты, набор констант для них.
Что бы не размножать число похожих переменных, хочу получить новые имена переменных добавлением символьных значений.

Конкретный пример.
1. Есть формы регистрации, формы входа, формы выхода юзера, формы добавлении ..., удаления... много разных форм
2. Если Передаю параметр $USER_FORMA в функцию, надо внутри функции создать доступ к переменным $USER_FORMA_ADD, $USER_FORMA_EDIT, $USER_FORMA_DELETE ...
3. Если Передаю параметр $NEWS_FORMA в функцию, надо внутри функции создать доступ к переменным $NEWS_FORMA_ADD, $NEWS_FORMA_EDIT, $NEWS_FORMA_DELETE
...
...

  Ответить  
 
 автор: speedsoft   (16.05.2012 в 14:22)   письмо автору
 
   для: roma67   (16.05.2012 в 13:52)
 

<?  
function n1($param) {  
 
$add $params.'_FORMA_ADD';
 
$edit $params.'_FORMA_EDIT';
 
$del $params.'_FORMA_DELETE';

 echo $
$add;
 echo $
$edit;
 echo $
$del;
}  

// вызываю с одним параметром  
n1("USER");   // выведутся USER_FORMA_ADD, USER_FORMA_EDIT, USER_FORMA_DELETE
n1("NEWS");    // выведутся NEWS_FORMA_ADD, NEWS_FORMA_EDIT, NEWS_FORMA_DELETE
?>

  Ответить  
 
 автор: Lotanaen   (16.05.2012 в 13:54)   письмо автору
 
   для: roma67   (16.05.2012 в 11:54)
 

может быть Вас такой вариант устроит?
for ($i=1;$i<4;$i++)
    ${"var".$i} = $i;

  Ответить  
 
 автор: roma67   (16.05.2012 в 14:02)   письмо автору
 
   для: Lotanaen   (16.05.2012 в 13:54)
 

Я извиняюсь, что не конкретизировал сразу
$var может быть USER, а нужны имена переменных $USER_FORMA_ADD, $USER_FORMA_EDIT, $USER_FORMA_DELETE ...
$var может быть NEWS, а нужны имена переменных $NEWS_FORMA_ADD, $NEWS_FORMA_EDIT, $NEWS_FORMA_DELETE
$var может бытьCOMM...

  Ответить  
 
 автор: speedsoft   (16.05.2012 в 14:18)   письмо автору
 
   для: roma67   (16.05.2012 в 14:02)
 

все равно все сводится к тому, чтобы перевести строку в переменную, для этого используйте $$

<?
$USER_FORMA_ADD
'add';
$USER_FORMA_EDIT 'edit';
$USER_FORMA_DELETE 'delete'

$var 'USER';

$new $var.'_FORMA_ADD';
echo $
$new//add

$new $var.'_FORMA_EDIT';
echo $
$new//edit
....

  Ответить  
 
 автор: roma67   (16.05.2012 в 14:32)   письмо автору
 
   для: speedsoft   (16.05.2012 в 14:18)
 

А я подумал, что у вас в третьем комменте опечатка

....$$param...


Извиняюсь

Хочется найти приемы сокращения всех этих if...., путем стандартизации

Кажется мелочь, но сокращение размера кода ...
Какой раз мне кажется, что я по вашим стопам иду? Или нет, не по вашим? Или вы давно прошли это?

  Ответить  
 
 автор: speedsoft   (16.05.2012 в 15:00)   письмо автору
 
   для: roma67   (16.05.2012 в 14:32)
 

ну не знаю насколько по моим. Если делаете CMSку свою и пытаетесь таким образом написать общий модуль, то похоже что по моим ))))
я когда-то именно в CMSке извращался таким образом. Да и сейчас она также извращена похожими методами, но там я больше не переменные, а экшены и контроллеры таким образом вызываю.
там где вы создавали поля для класса - таким образом у меня создается объект записи из БД. где свойство объекта = полю БД

  Ответить  
 
 автор: roma67   (17.05.2012 в 12:57)   письмо автору
 
   для: speedsoft   (16.05.2012 в 15:00)
 

Ну да, делаю что-то вроде CMSки "своей", используя ваши решения и передовой опыт человечества. "Ползу за полетом вашей мысли"

> экшены и контроллеры..
Это мне не охватить. Не могу среду разработки подобрать с фреймворком и удобоваримым прояснением смысла MVC для взаимопонимания процесса разработки

Раньше у меня было так, открыл 1с- все очевидно и понятно, есть структурно-функциональная организация. Есть главное тело и органы. Потом с 80 что-то стряслось, появилось в ней много мутаций. Система стала эволюционировать и всех стало трясти. Пришлось бросить.

Сейчас 1с исправляется, зачищается.
Я ушел в веб и ничего годного к "проращиванию" не нашел.

Все разбилось в пустоте среды разработки и подходящего фреймворка.
ZEnd попробовал - он рассыпается, надо привыкать.
У испытанных мною фреймворков теория описывает одно, а видишь глазами другое. Прямо как у Канта, непознаваемое.

Может тут подтяните. Подскажите полезную среду разработки и исходную болванку, как лекарственный и целебный источник для очищения от вредных накоплений.

  Ответить  
 
 автор: speedsoft   (17.05.2012 в 14:28)   письмо автору
 
   для: roma67   (17.05.2012 в 12:57)
 

Не, тут не подскажу. Сам пробовал и Kohana и ZF, но времени чтобы научиться ездить на них нету, получилось так, что по крошкам проще было собрать свой велосипед и избавиться от зависимости производителя. Может колеса квадратные, но свои :)
Со временем и приходом опыта, обточу колеса и буду пусть не круглые, но уже овальные.

  Ответить  
 
 автор: roma67   (17.05.2012 в 14:36)   письмо автору
 
   для: speedsoft   (17.05.2012 в 14:28)
 

Так а в какой среде разработки отображаете структуру проекта из набора файлов, тестируете ...??

  Ответить  
 
 автор: speedsoft   (17.05.2012 в 14:44)   письмо автору
 
   для: roma67   (17.05.2012 в 14:36)
 

А в этом плане. Я использую NetBeans.

  Ответить  
 
 автор: speedsoft   (16.05.2012 в 15:01)   письмо автору
 
   для: roma67   (16.05.2012 в 14:32)
 

насчет сокращения кода - тот тут нужно не столько сокращать, столько делать декомпозицию. Не старайтесь уместить 10 строк в 1, если от этого потеряется читабельность. потом жалеть будете :)

краткость хоть и сестра таланта, но в меру

  Ответить  
 
 автор: roma67   (17.05.2012 в 13:50)   письмо автору
 
   для: speedsoft   (16.05.2012 в 15:01)
 

>делать декомпозицию. Все то же. Тускловатый смысл у меня в голове от этого слова.
Я понимаю, что мыслите вы от проекта?
Мне пришлось ограничится двумя уровнями. Уровнем реальных объектов и их отображением в таблицы данных. Представление же из таблиц в браузер, задаю сейчас частично смешанным кодом, подготавливая шаблонный процесс. "Топтание и брожение ума".

Сейчас целая проблема внедрить простенькую платежную систему. Почти все навязывают делать "глобальную мировую финансовую платежную систему". Другая часть программеров молчит. Результат- не могу сделать заказ и не могу сам написать и сдвинутся с места.

  Ответить  
 
 автор: speedsoft   (17.05.2012 в 14:31)   письмо автору
 
   для: roma67   (17.05.2012 в 13:50)
 

декомпозиция - это значит разбивать код как можно больше (в пределах разумного) на мелкие куски (функции). Взяли задачу, разбили на логические части, эти логические части на подчасти, эти подчасти на еще более мелки подзадачки т.д. пока не образуются неделимые, атомарные части.

  Ответить  
 
 автор: roma67   (17.05.2012 в 14:41)   письмо автору
 
   для: speedsoft   (17.05.2012 в 14:31)
 

Этот состав слов известен.
Но если попросить разных людей сделать по вашему описанию - у всех результат разный.
Из этого следует, что теория грешна и превращается в догму и наукообразную ширму.
Прояснение возникает после практической реализации формализованных систем проектирования. В разных - разная, но похожая теория.

  Ответить  
 
 автор: roma67   (18.05.2012 в 12:05)   письмо автору
 
   для: speedsoft   (17.05.2012 в 14:31)
 

Может с платежной системой посоветуете(модуль оплаты) что-нить?
У меня в этом вопросе 0, с чего начать(общие вопросы и рабочий скрипт к ним) и на чем быстрее новичку реализовать оплату с сайта.

На WEbMoney какие то аттестаты, регистрации и еще чего-то?
Без этого никак не обойтись, обязательно ли в этом надо копать и тратить время?
Если да, то как быстрей создать новичку к простую автоматизированную оплату с сайта?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования