我有一个功能;
function foo($foo)
{
$new_foo_{$foo} = $_POST['$submitted_foo_{$foo}'];
}
foo(1);
它失败了,因为 $foo 没有被插入到变量中。我一直在寻找正确的语法来完成这项任务,但到目前为止我还没有找到它。
这甚至可能吗?我的理由是我有多个输入的名称相差一个数字,因此创建一个函数并调用它将使我免于破坏 DRY。
完成这项任务的替代方法也将不胜感激。
我有一个功能;
function foo($foo)
{
$new_foo_{$foo} = $_POST['$submitted_foo_{$foo}'];
}
foo(1);
它失败了,因为 $foo 没有被插入到变量中。我一直在寻找正确的语法来完成这项任务,但到目前为止我还没有找到它。
这甚至可能吗?我的理由是我有多个输入的名称相差一个数字,因此创建一个函数并调用它将使我免于破坏 DRY。
完成这项任务的替代方法也将不胜感激。
$_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
可以这样做,但这不是实现目标的好方法。
如果你想在函数中使用它,你只需要一个global关键字,以便生成的变量具有全局范围:
function foo($foo)
{
global ${"new_foo_$foo"};
${"new_foo_$foo"} = $_POST["$submitted_foo_{$foo}"];
}
foo(1)
echo $new_foo_1;