2012-06-06 216 views
17

我有一个循环,从1到10个,并打印值PHP对象变量变量名称?

$entity_object->field_question_1到10左右...

$entity_object->field_question_1$entity_object->field_question_2

而且我想在这个循环打印此,我怎样才能得到这个变量?我试着做了

$var = "entity_object->field_question_".$i; 
print $$var; 

但没有奏效...

我怎样才能获得这些价值?

回答

34

这应该工作:

所有的
$var="field_question_$i"; 
$entity_object->$var; 
8

首先,阵列更适合你想要做什么。

答案你的问题:print $entity_object->{"field_question_$i"};

0

或者你也可以数组和对象之间的类型转换。

数组很简单,因为它们是有组织的并且易于访问。对象是相当不同的,但很多专业人士。

设置你的对象,像这样:

$entity_object["field_question_{$i}"] = ''//value; 

然后,他们可以被类型强制转换为一个对象:

$entity_object = (object)$entity_object; 

你可以这样引用它们喜欢:

$entity_object->field_question_1 ...; 
16

其实你需要为了使这些解决方案能够工作,需要像这样在字符串外部获取变量: $var="field_question_".$i;

$entity_object->$var;

或者

$entity_object->{"field_question_".$i} 
1

当升级到PHP 7中,我们面临的问题有类似的语句:

$variable->$node[$i] = true; 

在PHP 5.4,但在PHP 7的工作完美罚款导致整个网站崩溃。因此,我们将其替换为:

$variable->{$node[$i]} = true; 

为了解决这个问题