2010-05-20 8 views
6

आपके लिए एक आसान सवाल हो सकता है। इसे Google पर नहीं मिल रहा है।PHP concatenate चर

मैं दो चर नामों को संयोजित करने की कोशिश कर रहा हूं;

$i=0; 
for ($i=0;$i<5;$i++){ 
    if($array[$i]>0){ 

    $test.$i=//do something 
    }else{ 
    $test.$i=//do something 
    } 
} 

//echo $test0 gives me nothing. 
//echo $test1 gives me nothing. 

मैं जानता हूँ कि मैं $ परीक्षण का उपयोग नहीं कर सकते हैं। $ I लेकिन कैसे this.Any में मदद करता है करने के लिए पता नहीं है? धन्यवाद!

उत्तर

27

कोशिश ${$test.$i} = value

संपादित करें: http://php.net/manual/en/language.variables.variable.php

+0

अच्छा लिंक! आपको +1 – FlyingCat

+1

लिंक के कारण स्वीकृत उत्तर! : डी – FlyingCat

+0

ओपी के कोड की आखिरी दो पंक्तियां दर्शाती हैं कि अगर $ i == 0, तो वह $ test0 तक पहुंचने का प्रयास कर रहा है। इस मामले में, यदि $ परीक्षण अपरिभाषित है, तो $ परीक्षण खाली स्ट्रिंग का मूल्यांकन करेगा और {$ परीक्षण। $ I} का मूल्यांकन "0" होगा। – Dazarath

1

यह काम हो सकता है:

$varName = $test . $i; 
$$varName = ... 

मैं पूछ सकता हूँ जहां के लिए यह आवश्यक है?

+0

मैं पाश करने के लिए कोशिश कर रहा हूँ एक दो आयाम यहाँ की व्याख्या करने के लिए मुश्किल arrays..its, लेकिन मैं संयोजन की जरूरत है क्या प्राप्त करने के लिए मुझे जरूरत है। हालांकि धन्यवाद। +1 – FlyingCat

6

इस प्रयास करें:

for ($i=0;$i<5;$i++){ 
    $the_test = $test.$i; 
    if($array[$i]>0){ 
     $$the_test=//do something 
    } 
    else{ 
     $$the_test=//do something 
    } 
} 
+0

बहुत बहुत धन्यवाद! आपको +1 – FlyingCat

7

मैं यह सोचते हैं रहा है कि चर कहा जाता है $ test0, $ test1, ..., $ test5।

${"test".$i} 

हालांकि, मैं सुझाव दे सकता है कि आप $ एक सरणी का परीक्षण करने और $ मैं बजाय सूचकांक के रूप में इस्तेमाल करते हैं: आप निम्न का उपयोग कर सकते हैं? वैरिएबल नामों की सूची के माध्यम से लूप को इंडेक्स के रूप में $ i का उपयोग करना बहुत अजीब है।

उदाहरण के लिए, के बजाय:

$test0 = "hello"; 
$test1 = "world"; 

उपयोग:

$test[0] = "hello"; 
$test[1] = "world"; 
+0

मुझे आपके सुझाव पसंद हैं। मैंने पहले ही साइमन को स्वीकार्य उत्तर दिया है। +1 हालांकि: डी – FlyingCat

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