我正在尝试做类似htis的事情
foreach ($_POST as $key => $value)
{
$newNode->field_$key['und'][0]['value'] = $value;
}
php抱怨Parse错误:语法错误,意外T_VARIABLE
我试过
foreach ($_POST as $key => $value)
{
$newNode->field_{$key}['und'][0]['value'] = $value;
}
但是键输出为数组。不知道为什么。
任何提示?
答案 0 :(得分:8)
如果我可以建议一种替代方法 - 即使用数组。您不应该尝试动态创建变量名称。为此,很久很久以前很久以前的优秀工程师发明了一个阵列。
所以,从现在开始和整个永恒解决你的问题 - 重写你的代码使用:
$newNode->field[$key]['und'][0]['value'] = $value;
答案 1 :(得分:6)
正确的表示法是
$newNode->{"field_".$key}
应该有用。但正如@Furicane所说,阵列对此非常好。
答案 2 :(得分:1)
尝试使用变量作为完整的属性名称。
foreach ($_POST as $key => $value)
{
$fieldName = "field_{$key}";
$newNode->{$fieldName}['und'][0]['value'] = $value;
}
答案 3 :(得分:0)
变量名(以及对象属性)cannot have $ in name。
要实现这一目标,请阅读getters and setters with __get and __set