变量名称在另一个变量的名称内

gio*_*o79 0 php variables

我想做像htis这样的事情

foreach ($_POST as $key => $value)
    {
    $newNode->field_$key['und'][0]['value'] = $value;
    }
Run Code Online (Sandbox Code Playgroud)

php抱怨Parse错误:语法错误,意外T_VARIABLE

我试过了

foreach ($_POST as $key => $value)
    {
    $newNode->field_{$key}['und'][0]['value'] = $value;
    }
Run Code Online (Sandbox Code Playgroud)

但是键输出为数组.不知道为什么.

有小费吗?

Fur*_*ane 8

如果我可以建议一种替代方法 - 即使用数组.您不应该尝试动态创建变量名称.为此,很久很久以前很久以前的好工程师发明了一个阵列.

所以,从现在开始和整个永恒解决你的问题 - 重写你的代码使用:

$newNode->field[$key]['und'][0]['value'] = $value;
Run Code Online (Sandbox Code Playgroud)


Pek*_*ica 6

正确的表示法是

$newNode->{"field_".$key}
Run Code Online (Sandbox Code Playgroud)

应该工作.但正如@Furicane所说,阵列对此非常好.