2012-06-06 20 views
17

que tienen un bucle que va de 1 a 10 y los valores grabados enNombre de variable de variable de objeto PHP?

$entity_object->field_question_1 a 10 así que ...

$entity_object->field_question_1, $entity_object->field_question_2, etc

y quiero imprimir esto en este bucle, ¿cómo puedo obtener la variable? He intentado hacer la

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

Pero eso no funcionó ...

¿Cómo puedo obtener estos valores?

Respuesta

34

Esto debería funcionar:

$var="field_question_$i"; 
$entity_object->$var; 
8

En primer lugar, las matrices son más adecuados para lo que quiere hacer.

La respuesta que le pregunta: print $entity_object->{"field_question_$i"};

0

o puede hacer encasillado entre matrices y objetos.

Las matrices son simples en el hecho de que están organizadas y son de fácil acceso. Los objetos son bastante diferentes pero están fuera de muchos pro.

Establecer los objetos de este modo:

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

A continuación, se pueden typecasted a un objeto:

$entity_object = (object)$entity_object; 

A continuación, hacer referencia a ellos les gusta:

$entity_object->field_question_1 ...; 
16

En realidad lo que necesita para tomar la variable fuera de la cadena de esta manera para que esas soluciones funcionen: $var="field_question_".$i;

$entity_object->$var;

O

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

Al actualizar a PHP 7 nos enfrentamos a un problema con declaraciones como:

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

que funcionó perfectamente multado en PHP 5.4, pero en PHP 7 hizo que todo el sitio web se bloquee. Así que reemplazamos con:

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

Para resolver el problema