2015-09-04 10 views
7

मैं वास्तव में php में कार्यात्मक प्रोग्रामिंग का प्रयोग कर रहा हूं। मैं कुछ फ़ंक्शन कॉल के बारे में कुछ सटीक होना चाहता हूं।कार्यात्मक प्रोग्रामिंग - सभी पैरामीटर के साथ कॉल फ़ंक्शन

एक उदाहरण के रूप:

function addition($num1){ 
    return function ($num2) use ($num1){ 
     return $num1+$num2; 
    } 
} 
$add_2_to = addition(2); 
echo $add_2_to(3); 
echo $add_2_to(4); 

वहाँ एक रास्ता सभी मापदंडों के साथ इसके अलावा समारोह कॉल करने के लिए है? मैं कोई संभावना के साथ इस तरह से करने की कोशिश की:

echo addition(2)(3); 
+0

ps जो गुणा है ('*' का उपयोग करके), अतिरिक्त नहीं है। – naomik

उत्तर

7

आप बहुत करीब हैं। इसलिए चर $ संख्या 1 लौटे समारोह के भीतर उपलब्ध नहीं है पीएचपी शाब्दिक गुंजाइश नहीं है ... उस के लिए आप स्पष्ट रूप से वर्तमान में काम नहीं करेगा use

function addition($num1){ 
    return function ($num2) use ($num1){ 
     return $num1*$num2; 
    }; 
} 
$add_2_to = addition(2); 
echo $add_2_to(3); 
echo $add_2_to(4); 

का उपयोग कर वाक्य रचना आप echo addition(2)(3); प्रस्तावित आयात करने के लिए है, लेकिन जब php 7 आता है यह होगा। PHP के वर्तमान संस्करणों के लिए आप जो चाहते हैं उसे करने के लिए call_user_func का उपयोग कर सकते हैं।

echo call_user_func(addition(2), 3); 
+0

पूरी तरह से काम करते हैं @ ओरंगपिल! धन्यवाद –

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