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

PHP में अनाम फ़ंक्शन में पैरेंट स्कोप से वेरिएबल्स एक्सेस करना


'use' कीवर्ड का उपयोग विशिष्ट फ़ंक्शन के स्कोप में वेरिएबल्स को बाइंड करने के लिए किया जा सकता है।

फ़ंक्शन के स्कोप में वेरिएबल्स को बाइंड करने के लिए use कीवर्ड का उपयोग करें:

उदाहरण

<?php 
$message = 'hello there'; 
$example = function () { 
    var_dump($message); 
}; 
$example(); 
$example = function () use ($message) { // $message को विरासत में लें 
    var_dump($message); 
}; 
$example(); // विरासत में मिले वेरिएबल का मान तब से है जब फ़ंक्शन परिभाषित किया गया था, तब नहीं जब कॉल किया गया 
$message = 'Inherited value'; 
$example(); 
$message = 'reset to hello'; // message रीसेट हो गया 
$example = function () use (&$message) { // रेफरेंस द्वारा विरासत में लें 
    var_dump($message); 
}; 
$example(); // पैरेंट स्कोप में बदला गया मान 
// फ़ंक्शन कॉल के अंदर परिलक्षित होता है 
$message = 'change reflected in parent scope'; 
$example(); 
$example("hello message"); 
?>

आउटपुट

यह निम्न आउटपुट देगा:

NULL string(11) "hello there" string(11) "hello there" string(14) "reset to hello" string(32) "change reflected in parent scope" string(32) "change reflected in parent scope"

मूल रूप से, 'example' फ़ंक्शन को पहले कॉल किया जाता है। दूसरी बार, $message विरासत में मिला है, और इसका मान तब बदलता है जब फ़ंक्शन परिभाषित किया गया था। $message का मान रीसेट हो जाता है और फिर से विरासत में मिलता है। चूंकि मान रूट/पैरेंट स्कोप में बदल गया था, इसलिए फ़ंक्शन कॉल होने पर परिवर्तन परिलक्षित होते हैं।


  1. - PHP में फ़ंक्शन से दो मान लौटाना

    दो वेरिएबल्स को स्पष्ट रूप से लौटाया नहीं जा सकता, उन्हें एक सूची/एरे डेटा संरचना में रखा जा सकता है और लौटाया जा सकता है। उदाहरण function factors($n) { // एक खाली सरणी घोषृत की जाती है $fact = array(); // इसके माध्यम से लूप करें for ($i = 1; $i < $n; $i++) { // जांचें

  1. - PHP में Anonymous Objects बनाना

    PHP 7+ में Anonymous Classes का उपयोग करके on-the-fly objects create करना। मूल Syntax (PHP 7+) greet(); // Hello, Anonymous! Parent Class Extend करना getFullInfo(); Interface Implement करना getLogs()); Constructor Arguments Pass करना request(/users); Use Cases Use CaseExample Test Doubles

  1. - PHP में extract() फंक्शन

    PHP में extract() फंक्शन सरणी से वर्तमान सिंबल टेबल में चर आयात करता है। यह सफलतापूर्वक निकाले गए चरों की संख्या लौटाता है। सिंटैक्स extract(arr, rules, prefix) पैरामीटर्स arr - निर्दिष्ट सरणी। rules - निर्दिष्ट करता है कि अमान्य चर नाम से कैसे निपटें। संभावित मान: EXTR_OVERWRITE - डिफ़ॉल्ट। टकर