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

PHP 7 में अनाम क्लासेस?


PHP 7 में अनाम क्लासेस को new class का उपयोग करके परिभाषित किया जा सकता है। इसका उपयोग पूर्ण क्लास परिभाषा के बजाय भी किया जा सकता है। अनाम क्लासेस क्यों उपयोग करें?

  • मॉकिंग टेस्ट आसान है।
  • इंटरफेस के लिए डायनामिक कार्यान्वयन आसानी से बनाए जा सकते हैं, जिससे जटिल मॉकिंग APIs के उपयोग से बचा जा सकता है।
  • उन्हें उस स्कोप में रखा जा सकता है जहां उन्हें परिभाषित किया गया था।
  • सरल कार्यान्वयन के लिए ऑटोलोडर के उपयोग से बचा जा सकता है।

उदाहरण

नीचे एक कोड नमूना है:

<?php 
interface a_logger { 
    public function log(string $msg); 
} 
class App { 
    private $logger; 
    public function getLogger(): a_logger { 
        return $this->logger; 
    } 
    public function setLogger(a_logger $logger) { 
        $this->logger = $logger; 
    } 
} 
$app = new App; 
$app->setLogger(new class implements a_logger { 
    public function log(string $msg) { 
        print($msg); 
    } 
}); 
$app->getLogger()->log("This has created an anonymous class"); 
?>

आउटपुट

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

This has created an anonymous class

  1. - PHP में एब्स्ट्रैक्ट क्लास समझाया गया

    PHP5 अपने साथ ऑब्जेक्ट-ओरिएंटेड मॉडल लाता है, ऑब्जेक्ट-ओरिएंटेड मॉडल की कुछ अवधारणाएं हैं: क्लास, ऑब्जेक्ट, एनकैप्सुलेशन, पॉलीमॉर्फिज्म, एब्स्ट्रैक्ट और फाइनल क्लासेज, और मेथड्स, इंटरफेसेस और इनहेरिटेंस, आदि... इस लेख में, हम एब्स्ट्रैक्ट क्लास और PHP में ऑब्जेक्ट-ओरिएंटेड तकनीकों से संबंधित इसकी व

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

    PHP में get_class_methods() फंक्शन क्लास मेथड्स के नाम प्राप्त करता है। यह name_of_class द्वारा निर्दिष्ट क्लास के लिए परिभाषित मेथड नामों की सरणी लौटाता है। त्रुटि की स्थिति में NULL लौटाता है। सिंटैक्स get_class_methods(class) पैरामीटर्स name_of_class - क्लास नाम। आवश्यक! रिटर्न वैल्यू name_o

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

    PHP में class_exists() फंक्शन जांचता है कि क्लास परिभाषित की गई है या नहीं। यदि क्लास एक परिभाषित क्लास है तो TRUE लौटाता है, अन्यथा FALSE। सिंटैक्स class_exists(class, autoload) पैरामीटर्स class - क्लास का नाम। autoload - डिफ़ॉल्ट रूप से __autoload को कॉल करना है या नहीं। रिटर्न वैल्यू यदि क्ल