2012-06-06 15 views
17

मैं एक पाश किPHP ऑब्जेक्ट वैरिएबल चर नाम?

तो 10 के माध्यम से $entity_object->field_question_1 में 10 और प्रिंट मूल्यों के लिए 1 से चला जाता है ...

$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; 

वे तो किसी ऑब्जेक्ट को typecasted जा सकता है:

$entity_object->field_question_1 ...; 
16

वास्तव में आप की जरूरत है:

$entity_object = (object)$entity_object; 

फिर आप उन्हें पसंद संदर्भ हैं काम करने के उन समाधानों के लिए स्ट्रिंग के बाहर चर को ले जाने के लिए: $var="field_question_".$i;

$entity_object->$var;

या

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

जब पीएचपी 7 के उन्नयन हम जैसे बयानों के साथ एक समस्या का सामना करना पड़ा:

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

पूरी तरह से पीएचपी 5.4 में लेकिन पीएचपी 7 में जुर्माना काम यही कारण है कि पूरी वेबसाइट को दुर्घटनाग्रस्त कर दिया। इसलिए हम इसे साथ बदलें:

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

समस्या को हल करने

संबंधित मुद्दे