Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 变量名在另一个变量的名称内_Php_Variables - Fatal编程技术网

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

Php 变量名在另一个变量的名称内,php,variables,Php,Variables,我正在尝试做类似htis的事情 foreach ($_POST as $key => $value) { $newNode->field_$key['und'][0]['value'] = $value; } php抱怨解析错误:语法错误,意外的T_变量 我试过了 foreach ($_POST as $key => $value) { $newNode->field_{$key}['und'][0]['value'] = $va

我正在尝试做类似htis的事情

foreach ($_POST as $key => $value)
    {
    $newNode->field_$key['und'][0]['value'] = $value;
    }
php抱怨解析错误:语法错误,意外的T_变量

我试过了

foreach ($_POST as $key => $value)
    {
    $newNode->field_{$key}['und'][0]['value'] = $value;
    }
但随后密钥作为数组输出。不知道为什么

任何提示?

变量名(以及对象属性)


要使其正常工作,请阅读有关

的内容,正确的符号是

$newNode->{"field_".$key}

这应该行得通。但是正如@Furicane所说的,数组在这方面要好得多。

如果我可以建议另一种方法的话,那就是使用数组。您不应该尝试动态创建变量名。为此,很久很久以前的优秀工程师在遥远的一年里发明了一种阵列

因此,要从现在开始解决您的问题,以及永远解决您的问题,请重写您的代码以使用:

$newNode->field[$key]['und'][0]['value'] = $value;

尝试使用变量作为完整属性名

foreach ($_POST as $key => $value)
{
    $fieldName = "field_{$key}";
    $newNode->{$fieldName}['und'][0]['value'] = $value;
}

+1完全正确。无论如何,数组已经被大量使用,所以添加另一个维度不会有什么坏处。这并不完全正确,因为存在动态访问属性的有效用例。后期静态绑定使许多构建良好的应用程序在PHP5.3中成为可能。但不要误解这一说法;通常一个数组是合适的。另外,如果你一次索引了那么多东西,你可能应该考虑一下你在做什么,并适当地添加一些类。谢谢你的提示,不幸的是,我的手被这一个束缚住了,因为我正在与Drupal一起工作,Drupal对字段使用这种符号,下面是一个例子:谢谢,这是一个赢家。4分钟后,我会将其标记为这样。:)这也是一个赢家。Pekka的解决方案在此之前就已经发布了,所以我会将其标记为正确的。感谢您的评论,我会仔细阅读。佩卡的解决方案有效,所以我现在就用它。