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

PHP 7 में बेनामी कक्षाएं?

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

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

  • सरल कार्यान्वयन के लिए ऑटोलोडर के उपयोग से बचा जा सकता है।

उदाहरण

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

<?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 में ऑब्जेक्ट-ओरिएंटेड तकनीकों से संबंधित Abstract Class और इसकी व

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

    get_class_methods() फ़ंक्शन को वर्ग विधियों के नाम मिलते हैं। यह name_of_class द्वारा निर्दिष्ट वर्ग के लिए परिभाषित विधि नामों की एक सरणी देता है। त्रुटि के मामले में, यह NULL देता है। सिंटैक्स get_class_methods(class) पैरामीटर name_of_class - वर्ग का नाम। आवश्यक! वापसी get_class_methods() फ

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

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