繁体   English   中英

另一个变量名内的变量名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM