2012-06-06 5 views
17

Ich habe eine Schleife, die von 1 bis 10 und Druck Werte inPHP-Objekt Variable Variablen Name?

$entity_object->field_question_1 bis 10 ...

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

Und ich will, so geht dies in dieser Schleife drucken, Wie kann ich die Variable bekommen? Ich versuchte, die

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

zu tun, aber das hat nicht funktioniert ...

Wie kann ich diese Werte zu erhalten?

Antwort

34

Diese Arbeit sollte:

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

Zu allererst Arrays sind besser geeignet für das, was Sie tun möchten.

Die Antwort auf Sie in Frage: print $entity_object->{"field_question_$i"};

0

Oder Sie zwischen Arrays und Objekte typisieren können.

Arrays sind einfach in der Tatsache, dass sie organisiert und leicht zugänglich sind. Objekte sind ziemlich verschieden, aber von vielen Profis.

Ihre Objekte einstellen wie folgt:

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

Sie können dann auf ein Objekt typecasted werden:

$entity_object = (object)$entity_object; 

Sie möchten, dass sie dann verweisen:

$entity_object->field_question_1 ...; 
16

Eigentlich brauchen Sie die Variable so außerhalb der Zeichenkette zu nehmen, damit diese Lösungen funktionieren: $var="field_question_".$i;

$entity_object->$var;

Oder

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

Wenn PHP 7 Upgrade konfrontiert wir ein Problem mit Aussagen wie:

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

, die perfekt in PHP bestraft gearbeitet 5.4 aber in PHP 7 verursachte den Absturz der gesamten Website. So ersetzen wir es mit:

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

Um das Problem zu lösen