в скрипте строки:
$i=1;
$_SESSION['mm']=fun_1($_POST['m']);
$i меняется т.е. функция может быть fun_12, fun_5 и т.д.
как выше написать условие что то типа
fun_n='fun_'.$i;
C переменными так можно, а с функциями как быть? Функции лежат в отдельном каталоге и подключаются инклюдом.
Спустя 38 минут, 23 секунды (25.11.2011 - 06:45) bulgakov написал(а):
Свернутый текст
Наверное с утра не выспался, но я упорно не могу понять в чем задача...
Спустя 4 минуты, 34 секунды (25.11.2011 - 06:50) McLotos написал(а):
А что CASE не рулит?
Спустя 1 минута, 42 секунды (25.11.2011 - 06:52) Rand написал(а):
$_SESSION['mm'] = call_user_func('fun_'.$i, $_POST['m']);
Спустя 6 минут, 53 секунды (25.11.2011 - 06:59) alex12060 написал(а):
как вариант еще можно посмотреть в сторону eval()
Спустя 5 минут, 46 секунд (25.11.2011 - 07:04) GET написал(а):
Цитата |
call_user_func |
наверное не подойдет ...гм...
evalнаверное тоже можно применить, но с ним будет еще сложнее наверное...
CASE будет большим и ему конкретные имена указвать придется, а у меня они меняються динамически
в целом вопрос снят, решил присвоить функциям одинаковое название, но разные имена файлов...минус в том, что таким способом можно только одну функцию с таким названием вызвать
if (file_exists ('xxx/xx/'.$func.'.php'))
{
include 'xxx/xx/'.$func.'.php';
}
Всем спасибо за помощь.
Спустя 1 час, 10 минут, 36 секунд (25.11.2011 - 08:15) McLotos написал(а):
=)
берешь case, а дальше через rand задаёшь число, которое и будет вытягивать функцию из кейса. Всё намного проще чем кажется. =)
берешь case, а дальше через rand задаёшь число, которое и будет вытягивать функцию из кейса. Всё намного проще чем кажется. =)
Спустя 3 минуты, 34 секунды (25.11.2011 - 08:19) GET написал(а):
McLotos
придумал подругому делать инклюд внутри, а не снаружи
function myfunction
{
include'1.php';
}
тогда с myfunction можно все, что угодно делать
придумал подругому делать инклюд внутри, а не снаружи
function myfunction
{
include'1.php';
}
тогда с myfunction можно все, что угодно делать

Спустя 1 минута, 46 секунд (25.11.2011 - 08:20) McLotos написал(а):
тоже вариант, но почему-то мне это кажется извращением, не знаю почему.
Спустя 4 минуты, 8 секунд (25.11.2011 - 08:24) GET написал(а):
McLotos
не все же быть нормальным
не все же быть нормальным

Спустя 56 минут, 21 секунда (25.11.2011 - 09:21) Nikitian написал(а):
<?php
$i=1;
$func = 'fun_'.$i;
$_SESSION['mm']=$func($_POST['m']);
Спустя 2 минуты, 57 секунд (25.11.2011 - 09:24) GET написал(а):
Nikitian
Да ну!...проверить не могу, но...если что + за мной!
Да ну!...проверить не могу, но...если что + за мной!
Спустя 4 минуты, 19 секунд (25.11.2011 - 09:28) Winston написал(а):
alex12060
Цитата (alex12060 @ 25.11.2011 - 05:59) |
как вариант еще можно посмотреть в сторону eval() |
С появлением в PHP анонимных ф-й, eval здесь не нужен.
Спустя 10 минут, 35 секунд Winston написал(а):
$i=1;
$func = 'fun_'.$i;
$func = function ($var)
{
return $var;
};
echo $func(10);
Спустя 21 минута, 18 секунд (25.11.2011 - 09:49) Nikitian написал(а):
Цитата (A.B.C. @ 25.11.2011 - 09:24) |
Nikitian Да ну!...проверить не могу, но...если что + за мной! |
Специально проверил, такой код выводит 1
<?php
function i1($v){
return$v;
}
$i=1;
$name='i'.$i;
echo$name($i);
Спустя 34 минуты, 31 секунда (25.11.2011 - 10:24) linker написал(а):
Более читабельным будет call_user_func(), без всякой магии. Хотя в данном случае, 100% требуется пересмотр и переписывание архитектуры.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.