[英]Variable name inside name of another variable
我正在尝试做类似htis的事情
foreach ($_POST as $key => $value)
{
$newNode->field_$key['und'][0]['value'] = $value;
}
PHP抱怨解析错误:语法错误,意外的T_VARIABLE
我试过了
foreach ($_POST as $key => $value)
{
$newNode->field_{$key}['und'][0]['value'] = $value;
}
但是然后密钥被输出为数组。 不知道为什么。
有小费吗?
如果我可能建议另一种方法-使用数组。 您不应该尝试动态创建变量名。 为此,很久很久以前的优秀工程师在一年前就发明了一个阵列。
因此,要解决您现在和整个永恒的问题,请重写代码以使用:
$newNode->field[$key]['und'][0]['value'] = $value;
正确的符号是
$newNode->{"field_".$key}
那应该工作。 但是正如@Furicane所说,数组在此方面要好得多。
尝试使用变量作为完整属性名称。
foreach ($_POST as $key => $value)
{
$fieldName = "field_{$key}";
$newNode->{$fieldName}['und'][0]['value'] = $value;
}
变量名称(以及对象属性) 不能包含$ in name 。
要使此工作正常进行,请阅读有关使用__get和__set的getter和setter方法的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.