परिचय
बेनामी फ़ंक्शन बिना किसी उपयोगकर्ता परिभाषित नाम के एक फ़ंक्शन है। ऐसे फ़ंक्शन को क्लोज़र . भी कहा जाता है या लैम्ब्डा समारोह। कभी-कभी, आप एक बार उपयोग के लिए एक फ़ंक्शन चाहते हैं। क्लोजर एक अनाम फ़ंक्शन है जो उस वातावरण में बंद हो जाता है जिसमें इसे परिभाषित किया गया है। आपको इसमें उपयोग कीवर्ड निर्दिष्ट करने की आवश्यकता है। इनलाइन कॉलबैक फ़ंक्शन बनाने के लिए अनाम फ़ंक्शन का सबसे आम उपयोग।
सिंटैक्स
$var=function ($arg1, $arg2) { return $val; };
- फ़ंक्शन कीवर्ड और ओपनिंग कोष्ठक के बीच कोई फ़ंक्शन नाम नहीं है।
- फ़ंक्शन परिभाषा के बाद अर्धविराम होता है क्योंकि अनाम फ़ंक्शन परिभाषाएं अभिव्यक्ति होती हैं
- फ़ंक्शन एक वेरिएबल को असाइन किया जाता है, और बाद में वेरिएबल के नाम का उपयोग करके कॉल किया जाता है।
- जब किसी अन्य फ़ंक्शन को पास किया जाता है जो बाद में उसे कॉल कर सकता है, तो इसे कॉलबैक के रूप में जाना जाता है।
- इसे बाहरी फ़ंक्शन के भीतर से लौटाएं ताकि यह बाहरी फ़ंक्शन के चरों तक पहुंच सके। इसे क्लोजर के रूप में जाना जाता है।
बेनामी फ़ंक्शन उदाहरण
उदाहरण
<?php $var = function ($x) {return pow($x,3);}; echo "cube of 3 = " . $var(3); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
cube of 3 = 27
कॉलबैक के रूप में बेनामी फ़ंक्शन
निम्नलिखित उदाहरण में, एक अनाम फ़ंक्शन का उपयोग अंतर्निहित usort () फ़ंक्शन के लिए तर्क के रूप में किया जाता है। usort () फ़ंक्शन तुलना फ़ंक्शन का उपयोग करके किसी दिए गए सरणी को सॉर्ट करता है
उदाहरण
<?php $arr = [10,3,70,21,54]; usort ($arr, function ($x , $y) { return $x > $y; }); foreach ($arr as $x){ echo $x . "\n"; } ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
3 10 21 54 70
बेनामी फ़ंक्शन क्लोजर के रूप में
क्लोजर भी एक अनाम फ़ंक्शन है जो उपयोग कीवर्ड की मदद से अपने दायरे से बाहर चर का उपयोग कर सकता है
उदाहरण
<?php $maxmarks=300; $percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;}; echo "marks=285 percentage=". $percent(285); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
marks=285 percentage=95