php कॉलबैक फ़ंक्शन के अंदर मैं एक वैरिएबल कैसे शामिल कर सकता हूं?



count callback (1)

मैं n से अधिक सरणी मानों की संख्या प्राप्त करने का प्रयास कर रहा हूं।

मैं array_reduce() का उपयोग कर रहा हूं:

$arr = range(1,10);
echo array_reduce($arr, function ($a, $b) { return ($b > 5) ? ++$a : $a; });

यह हार्ड-कोडित 5 से अधिक सरणी में तत्वों की संख्या को छानता है।

लेकिन मैं 5 $n तरह एक चर कैसे कर सकता हूँ?

मैंने इस तरह एक तीसरी तर्क पेश करने की कोशिश की है:

array_reduce($arr, function ($a, $b, $n) { return ($b > $n) ? ++$a : $a; });
//                                    ^                  ^

और भी

array_reduce($arr, function ($a, $b, $n) { return ($b > $n) ? ++$a : $a; }, $n);
//                                    ^                  ^                   ^

इनमें से कोई भी काम नहीं है क्या आप मुझे बता सकते हैं कि मैं यहाँ कैसे एक चर शामिल कर सकता हूँ?


पेरेंट मान को कैप्चर करने के लिए सिंटैक्स function .. use में पाया जा सकता है function .. use "उदाहरण # 3 में अभिभावकीय गुणों से इनहेरिटिंग चर" के तहत दस्तावेज़ का function .. use

.. माता-पिता के गुंजाइश से चर को आवंटित करना ['उपयोग' फ़ॉर्म की आवश्यकता होती है और] वैश्विक वैरिएबल का उपयोग करने के समान नहीं है .. एक समापन का अभिभावक गुंजाइश एक ऐसा समारोह है जिसमें समापन घोषित किया गया था (जरूरी नहीं कि फ़ंक्शन जिसे इसे कहा जाता था से)।

मूल कोड को बदलने से, use की सहायता से, तब है:

$n = 5;
array_reduce($arr, function ($a, $b) use ($n) {
    return ($b > $n) ? ++$a : $a;
});

जहां $n बाहरी शब्दात्मक गुंजाइश से "प्रयोग" किया गया है

नोट: उपरोक्त उदाहरण में, मूल्य की एक प्रति की आपूर्ति की जाती है और चर स्वयं ही बाध्य नहीं है। मूल संदर्भ में वेरिएबल को सक्षम और पुन: असाइन करने के लिए संदर्भ-टू-ए-चर (जैसे। &$n ) का उपयोग करने के बारे में दस्तावेज़ीकरण देखें।





array-reduce