将变量插入函数内的变量名称

时间:2013-08-11 19:14:30

标签: php

我有一个功能;

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

foo(1);

失败是因为没有将$ foo插入变量中。 我已经找到了完成这项任务的正确语法,但到目前为止我还没有找到。

这甚至可能吗? 我的理由是我有多个输入,其名称由一个数字关闭,因此创建一个函数并调用它将使我免于破坏DRY。

非常感谢完成此任务的替代方法。

2 个答案:

答案 0 :(得分: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 :(得分:-1)

可以这样做,但这不是实现目标的好方法。

如果您想在函数中使用它,您只需要一个全局关键字,以便生成的变量具有全局范围:

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

foo(1) 

echo $new_foo_1;