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

पीएचपी ऑटोलोडिंग क्लासेस

परिचय

किसी अन्य PHP स्क्रिप्ट में परिभाषित वर्ग का उपयोग करने के लिए, हम इसे शामिल या आवश्यकता कथन के साथ शामिल कर सकते हैं। हालांकि, PHP की ऑटोलोडिंग सुविधा को ऐसे स्पष्ट समावेशन की आवश्यकता नहीं है। इसके बजाय, जब एक वर्ग का उपयोग किया जाता है (इसकी वस्तु आदि घोषित करने के लिए) PHP पार्सर इसे स्वचालित रूप से लोड करता है, अगर यह spl_autoload_register() के साथ पंजीकृत है समारोह। इस प्रकार कितनी भी कक्षाएं पंजीकृत की जा सकती हैं। इस तरह PHP पार्सर को त्रुटि उत्सर्जित करने से पहले कक्षा/इंटरफ़ेस लोड करने का अंतिम मौका मिलता है।

सिंटैक्स

spl_autoload_register(function ($class_name) {
   include $class_name . '.php';
});

कक्षा पहली बार उपयोग में आने पर इसकी संबंधित .php फ़ाइल से लोड की जाएगी

ऑटोलोडिंग उदाहरण

यह उदाहरण दिखाता है कि कैसे एक क्लास ऑटोलोडिंग के लिए पंजीकृत है

उदाहरण

<?php
spl_autoload_register(function ($class_name) {
   include $class_name . '.php';
});
$obj = new test1();
$obj2 = new test2();
echo "objects of test1 and test2 class created successfully";
?>

आउटपुट

यह निम्नलिखित परिणाम देगा। -

objects of test1 and test2 class created successfully

हालाँकि, यदि संबंधित .php फ़ाइल जिसमें क्लैस परिभाषा नहीं है, तो निम्न त्रुटि प्रदर्शित की जाएगी।

Warning: include(): Failed opening 'test10.php' for inclusion (include_path='C:\xampp\php\PEAR') in line 4
PHP Fatal error: Uncaught Error: Class 'test10' not found

अपवाद प्रबंधन के साथ स्वतः लोड हो रहा है

उदाहरण

<?php
spl_autoload_register(function($className) {
   $file = $className . '.php';
   if (file_exists($file)) {
      echo "$file included\n";
      include $file;
   } else {
      throw new Exception("Unable to load $className.");
   }
});
try {
   $obj1 = new test1();
   $obj2 = new test10();
} catch (Exception $e) {
   echo $e->getMessage(), "\n";
}
?>

आउटपुट

यह निम्नलिखित परिणाम देगा। -

Unable to load test1.

  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 को कॉल करना है या न