2010-11-14 11 views
6

मैं PunBB 'चीर-फाड़' कर रहा हूँ, और अपने कार्यों में से एक BBCode टैग की संरचना की जाँच करता है और सरल गलतियों को ठीक जहां संभव:एक चर के सामने क्या मतलब है और साइन इन करें?

function preparse_tags($text, &$errors, $is_signature = false) 

क्या $error चर के सामने & मतलब है?

+0

संभावित डुप्लिकेट [PHP: एक चर नाम के सामने क्या होता है?] (Http://stackoverflow.com/questions/3774130/php-what-does-a-in-front-of-a -वर्तनीय-नाम-माध्य) – nbro

उत्तर

22

इसका अर्थ है pass the variable by reference, चर के मूल्य को पारित करने के बजाय। इसका मतलब है कि preparse_tags फ़ंक्शन में उस पैरामीटर में कोई भी परिवर्तन तब रहता है जब प्रोग्राम प्रवाह कॉलिंग कोड पर वापस आ जाता है।

function passByReference(&$test) { 
    $test = "Changed!"; 
} 

function passByValue($test) { 
    $test = "a change here will not affect the original variable"; 
} 

$test = 'Unchanged'; 
echo $test . PHP_EOL; 

passByValue($test); 
echo $test . PHP_EOL; 

passByReference($test); 
echo $test . PHP_EOL; 

आउटपुट:

अपरिवर्तित

अपरिवर्तित

बदल दिया!

+0

अच्छा जवाब है, लेकिन मैं इसे काउंटर करने के लिए फ़ंक्शन पास ByValue ($ test) प्रदान करता हूं। आवश्यक नहीं है, लेकिन किसी ऐसे व्यक्ति के लिए निश्चित रूप से सहायक है जो बाद में प्रश्न पर ठोकर खा रहा है। – pinkfloydx33

+0

महान उत्तर - त्वरित, आसान और महान उदाहरण! +1 –

1

यह पैरामीटर के रूप में एक चर के संदर्भ को स्वीकार करता है।

इसका मतलब है कि फ़ंक्शन पैरामीटर को बनाता है (उदाहरण के लिए, $errors = "Error!") कॉलिंग फ़ंक्शन द्वारा पारित चर को प्रभावित करेगा।

2

यह मूल्य से गुजरने के बजाय संदर्भ द्वारा पास करता है।

यह फ़ंक्शन को कॉलिंग फ़ंक्शन के दायरे में अपने दायरे के बाहर चर बदलने के लिए अनुमति देता है।

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

function addOne(&$val) { 
    $val++; 
} 
$a = 1; 
addOne($a); 
echo $a; // Will echo '2'. 

preparse_tags समारोह के मामले में, यह समारोह का प्रारूप/प्रकार की जांच किए बिना पार्स टैग लौटने के लिए, लेकिन अनुमति देते हैं बुला माता-पिता किसी भी त्रुटि प्राप्त करने के लिए करने की अनुमति देता लौटा मूल्य

0

इसका मतलब है कि त्रुटियों की स्थिति में पारित चर को बुलाए गए फ़ंक्शन द्वारा संशोधित किया जाएगा। एक विस्तृत रूप के लिए this देखें।

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