Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP अनाम फ़ंक्शन्स (Anonymous Functions) - क्लोज़र और कॉलबैक


परिचय

अनाम फ़ंक्शन किसी उपयोगकर्ता-परिभाषित नाम के बिना एक फ़ंक्शन है। ऐसे फ़ंक्शन को क्लोज़र (closure) या लैम्ब्डा (lambda) फ़ंक्शन भी कहा जाता है। कभी-कभी, आप एक बार उपयोग के लिए फ़ंक्शन चाहते हैं। क्लोज़र एक अनाम फ़ंक्शन है जो उस वातावरण पर बंद होता है जिसमें यह परिभाषित है। इसमें use कीवर्ड निर्दिष्ट करना होता है। अनाम फ़ंक्शन का सबसे आम उपयोग इंलाइन कॉलबैक फ़ंक्शन बनाने के लिए है।

सिंटैक्स

$var = function ($arg1, $arg2) { 
    return $val; 
};
  • function कीवर्ड और ओपनिंग पैरेंथेसिस के बीच कोई फ़ंक्शन नाम नहीं होता।
  • फ़ंक्शन परिभाषा के बाद सेमीकोलन होता है क्योंकि अनाम फ़ंक्शन परिभाषाएँ एक्सप्रेशन होती हैं।
  • फ़ंक्शन एक वेरिएबल को असाइन किया जाता है, और बाद में वेरिएबल के नाम का उपयोग करके कॉल किया जाता है।
  • जब किसी अन्य फ़ंक्शन को पास किया जाता है जो बाद में इसे कॉल कर सकता है, तो इसे कॉलबैक के रूप में जाना जाता है।
  • इसे बाहरी फ़ंक्शन के भीतर से लौटाएं ताकि यह बाहरी फ़ंक्शन के वेरिएबल्स तक पहुँच सके। इसे क्लोज़र के रूप में जाना जाता है।

उदाहरण

उदाहरण 1: बुनियादी अनाम फ़ंक्शन

<?php 
$var = function ($x) { 
    return pow($x, 3); 
}; 
echo "cube of 3 = " . $var(3); 
?>

आउटपुट

cube of 3 = 27

उदाहरण 2: कॉलबैक के रूप में अनाम फ़ंक्शन

निम्न उदाहरण में, एक अनाम फ़ंक्शन का उपयोग बिल्ट-इन 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

उदाहरण 3: क्लोज़र के रूप में अनाम फ़ंक्शन

क्लोज़र भी एक अनाम फ़ंक्शन है जो use कीवर्ड की सहायता से अपने दायरे के बाहर के वेरिएबल्स तक पहुँच सकता है।

<?php 
$maxmarks = 300; 
$percent = function ($marks) use ($maxmarks) { 
    return $marks * 100 / $maxmarks; 
}; 
echo "marks=285 percentage=" . $percent(285); 
?>

आउटपुट

marks=285 percentage=95
  1. - PHP mt_srand() फ़ंक्शन - मर्सन ट्विस्टर रैंडम जनरेटर सीड करना

    PHP का mt_srand() फ़ंक्शन **मर्सन ट्विस्टर (Mersenne Twister) रैंडम नंबर जनरेटर** को सीड करता है। mt प्रीफिक्स मर्सन ट्विस्टर एल्गोरिदम को इंगित करता है, जो मानक rand() से तेज़ और बेहतर गुणवत्ता वाला है। PHP में इसका उपयोग **वैकल्पिक** है क्योंकि स्वचालित सीडिंग होती है। सिंटैक्स mt_srand(int $seed

  1. - PHP mt_getrandmax() फ़ंक्शन - अधिकतम रैंडम मान

    PHP का mt_getrandmax() फ़ंक्शन **मर्सन ट्विस्टर जनरेटर द्वारा उत्पन्न किए जा सकने वाले सबसे बड़े पूर्णांक** को लौटाता है। यह mt_rand() के लिए डिफ़ॉल्ट ऊपरी सीमा के रूप में कार्य करता है। सिंटैक्स mt_getrandmax(): int पैरामीटर्स कोई पैरामीटर नहीं। लौटाया गया मान सबसे बड़ा संभव पूर्णांक (पूर्णांक)।

  1. - पायथन में अनाम फंक्शन क्या है?

    पायथन में, अनाम फंक्शन एक ऐसा फंक्शन है जिसे बिना नाम के परिभाषित किया जाता है। जबकि सामान्य फंक्शन्स को def कीवर्ड का उपयोग करके परिभाषित किया जाता है, पायथन में अनाम फंक्शन्स को lambda कीवर्ड का उपयोग करके परिभाषित किया जाता है। इसलिए, अनाम फंक्शन्स को लैम्ब्डा फंक्शन्स भी कहा जाता है। यदि हम दिए