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

PHP Closure क्लास

परिचय

अनाम फ़ंक्शन (जिन्हें लैम्ब्डा भी कहा जाता है) Closure क्लास का ऑब्जेक्ट लौटाते हैं। इस क्लास में कुछ अतिरिक्त मेथड हैं जो अनाम फ़ंक्शन पर आगे नियंत्रण प्रदान करते हैं।

सिंटैक्स

Closure {
    /* Methods */
    private __construct ( void )
    public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure
    public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure
    public call ( object $newthis [, mixed $... ] ) : mixed
    public static fromCallable ( callable $callable ) : Closure
}

मेथड्स

  • private Closure::__construct() - यह मेथड केवल Closure क्लास के इंस्टेंटिएशन को रोकने के लिए मौजूद है। इस क्लास के ऑब्जेक्ट अनाम फ़ंक्शन द्वारा बनाए जाते हैं।
  • public static Closure::bind() - एक विशिष्ट बाउंड ऑब्जेक्ट और क्लास स्कोप के साथ क्लोजर को डुप्लिकेट करता है। यह मेथड Closure::bindTo() का स्टेटिक वर्जन है।
  • public Closure::bindTo() - एक नए बाउंड ऑब्जेक्ट और क्लास स्कोप के साथ क्लोजर को डुप्लिकेट करता है। समान बॉडी और बाउंड वेरिएबल के साथ एक नया अनाम फ़ंक्शन बनाता है और लौटाता है, लेकिन अलग ऑब्जेक्ट और नए क्लास स्कोप के साथ।
  • public Closure::call() - अस्थायी रूप से क्लोजर को newthis से बांधता है, और दिए गए किसी भी पैरामीटर के साथ इसे कॉल करता है।

Closure उदाहरण

<?php
class A {
    public $nm;
    function __construct($x) {
        $this->nm = $x;
    }
}
// call मेथड का उपयोग
$hello = function() {
    return "Hello " . $this->nm;
};
echo $hello->call(new A("Amar")) . "\n";

// bind मेथड का उपयोग
$sayhello = $hello->bindTo(new A("Amar"), 'A');
echo $sayhello();
?>

आउटपुट

Hello Amar
Hello Amar

व्याख्या: call() अस्थायी रूप से $this को बांधता है और कॉल करता है। bindTo() एक नया क्लोजर बनाता है जिसमें स्थायी रूप से बाउंड $this होता है। fromCallable() किसी भी कॉल करने योग्य को क्लोजर में बदलता है।

उपयोग के मामले: कॉलबैक, डेलीगेशन, डिपेंडेंसी इंजेक्शन, लेजी इवैल्यूएशन।

  1. - C# में OrderedDictionary क्लास - प्रॉपर्टीज़, मेथड्स और उदाहरण

    OrderedDictionary क्लास (System.Collections.Specialized) की-वैल्यू पेयर्स का संग्रह है जो इंसर्शन क्रम बनाए रखते हुए कुंजी और इंडेक्स दोनों द्वारा एक्सेस प्रदान करती है। OrderedDictionary प्रॉपर्टीज़ क्रमांकप्रॉपर्टीविवरण 1Countकी-वैल्यू पेयर्स की संख्या प्राप्त करता

  1. - C# में Object क्लास

    System.Object (या object) C# में सभी क्लासेस का अल्टीमेट बेस क्लास है। प्रत्येक टाइप प्रत्यक्ष या अप्रत्यक्ष रूप से इससे विरासत में मिलता है। Object क्लास के मुख्य मेथड्स मेथडविवरण Equals(Object)निर्दिष्ट ऑब्जेक्ट वर्तमान ऑब्जेक्ट के बराबर है या नहीं Equals(Object, Object)दो ऑब्जेक्ट इंस्टेंसेस बरा

  1. - C# में Stack क्लास

    Stack क्लास ऑब्जेक्ट्स के लास्ट-इन, फर्स्ट-आउट कलेक्शन को दर्शाता है। इसका उपयोग तब किया जाता है जब आपको आइटम्स का लास्ट-इन, फर्स्ट-आउट एक्सेस चाहिए। Stack क्लास की प्रॉपर्टी निम्नलिखित है - Count - स्टैक में एलिमेंट्स की संख्या प्राप्त करता है। Stack क्लास के मेथड्स निम्नलिखित हैं - Sr.No. मेथ