2013-08-11 7 views
-1

У меня есть функция;Вставьте переменную в имя переменной внутри функции

function foo($foo) 
{ 
    $new_foo_{$foo} = $_POST['$submitted_foo_{$foo}']; 
} 

foo(1); 

Это ошибка, потому что $ foo не вставляется в переменную. Я искал правильный синтаксис для выполнения этой задачи, но до сих пор это ускользало от меня.

Возможно ли это? Мое рассуждение для этого: у меня есть несколько входов, у которых есть имена, которые отключены на одну цифру, поэтому выполнение функции и вызов ее спасет меня от взлома СУХОЙ.

Также будут оценены альтернативные методы для выполнения этой задачи.

+2

вы могли бы использовать ассоциативный массив для хранения значений. – Axarydax

+1

Нехорошо, но вы искали переменные переменные? –

ответ

1
$_POST['submitted_foo_1'] = 'test'; 
function foo($foo) 
{ 
    ${"new_foo_$foo"} = $_POST["submitted_foo_".$foo]; 
    echo $new_foo_1; 

} 

foo(1); 

you can also create variable names similar to input names on fly: 

//for example $_POST = array('name' => .., 'email' => ., 'submit' =>...) 
foreach($_POST as $key => $val){ 
    $$key = $val; 
} 
//now $name, $email, $submit available 
-1

Это можно сделать, но это не очень хороший способ достижения вашей цели.

Если вы хотите использовать его внутри функцию вы просто нужно глобального ключевым слова, так что в результате переменный имеют глобальную область видимости:

function foo($foo) 
{ 
    global ${"new_foo_$foo"}; 
    ${"new_foo_$foo"} = $_POST["$submitted_foo_{$foo}"]; 
} 

foo(1) 

echo $new_foo_1; 
Смежные вопросы