2012-04-18 18 views
5

मेरे पास एक ऐसा फ़ंक्शन है जो फ़ंक्शन लॉन्च होने से पहले बनाए गए सरणी को पॉप्युलेट करता है। जनसंख्या को काम करने के लिए, मैंने अपने कार्य में 'वैश्विक' का उपयोग किया। यहाँ सब कुछ स्थिति नीचे के साथ ठीक काम कर रहा है:PHP - फ़ंक्शन में वैश्विक चर को कैसे पास करें

$parameter = 'something'; 
$listOne = array(); 

my_function($parameter); 

function my_function($para) { 
    global $listeOne; 
    ...some code 
    $listeOne[0] = 'john'; 
    $listeOne[1] = 'lugano'; 
} 

मैं चाहते हैं क्या सरणी है कि जब समारोह बुला समारोह में इस्तेमाल किया जा माना जाता है पारित करने के लिए है। विचार इस तरह कुछ करने के लिए होगा: का उपयोग कर वैश्विक शायद करने के लिए सबसे अच्छी बात नहीं है,

$parameter = 'something'; 
$listOne = array(); 
$listTwo = array(); 

my_function($listOne, $parameter); 
...some code 
my_function($listTwo, $parameter); 

function my_function($list, $para) { 
    ...some code 
    $list[0] = 'john'; 
    $list[1] = 'lugano'; 
} 

इसके अलावा मैं क्या पढ़ा के अनुसार ... मैं कुछ & संकेत कहीं का उपयोग कर और यह कह रही है लोगों को देखा बेहतर है। लेकिन मुझे यह नहीं मिला और उस 'विधि' के बारे में जानकारी नहीं मिली ... उम्मीद है कि मैं स्पष्ट हूं। आपके उत्तरों के लिए अग्रिम धन्यवाद। चीयर्स। मार्क

उत्तर

9

यह referencing कहा जाता है:

$listOne = array(); 

function my_function(&$list, $para) { 
    ...some code 
    $list[0] = 'john'; 
    $list[1] = 'lugano'; 
} 
my_function($listOne, $parameter); 

print_r($listOne); // array (0 => 'john', 1 => 'lugano'); 

अब लोप सरणी बदल जाएगा।

+0

हेलो दान। सहायता का प्रयास करने के लिए धन्यवाद। यह स्थिति और उस स्थिति में कैसे हस्ताक्षर किया जाता है और यह कैसे काम करता है? और जब फ़ंक्शन को कॉल करते हैं तो मुझे भी साइन इन करना होगा? – Marc

+0

@Marc: मैन्युअल को क्यों नहीं पढ़ा, उसने –

+0

हैलो शक्ति को निर्देशित करने के लिए एक लिंक छोड़ा। लिंक पोस्ट करने के बाद लिंक जोड़ा गया था ... – Marc

1

& का उपयोग pass by reference का उपयोग करना है।

उदाहरण के लिए:

$x = '123'; 

function changeX(&$data){ 
    $data = '1'; 
} 

echo $x; //x should print out as 1. 

आपके मामले में, आप इस्तेमाल कर सकते हैं:

$parameter = 'something';  
$listOne = array(); 
$listTwo = array(); 

my_function($listOne, $parameter); 
my_function($listTwo, $parameter); 

function my_function(&$list, $para) { 
    $list[0] = 'john'; 
    $list[1] = 'lugano'; 
} 
1

आप अपने समारोह लिख सकते हैं इस तरह:

$listOne = array(); 
my_function($list = array()) 
{ 
array_push($list, 'john'); 
array_push($list, 'lugano'); 
return $list; 
} 

$listOne = my_function($listOne); 
print_r($listOne); 
संबंधित मुद्दे