2012-07-10 24 views
65

मैं PHP में अज्ञात कार्यों के साथ खेल रहा था और महसूस किया कि वे उनमें से बाहर चर तक नहीं पहुंचते हैं। क्या इस समस्या को हल करने का कोई तरीका है?PHP चर

उदाहरण:

$variable = "nothing"; 

functionName(someArgument, function() { 
    $variable = "something"; 
}); 

echo $variable; 

विल उत्पादन: "कुछ भी नहीं"। क्या कोई तरीका है कि अनाम फ़ंक्शन $ चर का उपयोग कर सकता है?

उत्तर

168

हाँ, use a closure:

functionName(someArgument, function() use(&$variable) { 
    $variable = "something"; 
}); 

ध्यान दें कि आपको $variable को संशोधित करने और गुमनाम समारोह के दायरे से बाहर संशोधित मान प्राप्त करने में सक्षम हो के लिए, यह & का उपयोग कर बंद करने में संदर्भित किया जाना चाहिए ।

+1

बहुत बढ़िया! पहले कभी नहीं देखा .. =) – einord

+0

यह नया है! यह वाक्यविन्यास है जो PHP 5.3 में नया है। –

+1

@ रॉकेट तो, निष्पक्ष होने के लिए, सही अनाम फ़ंक्शन सिंटैक्स है (जैसा कि 'create_function() 'के विपरीत है) और' उपयोग' कीवर्ड को [उसी दस्तावेज़ पृष्ठ] पर दस्तावेज़ (बुरी तरह) लिखा गया है (http: // php। नेट/मैनुअल/एन/functions.anonymous.php) जो उनका वर्णन करता है। – DaveRandom