2012-06-06 217 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; 

爲了解決這個問題