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

PHP मैजिक मेथड्स: पूर्ण संदर्भ गाइड


परिचय

PHP में मैजिक मेथड्स विशेष मेथड्स होते हैं जो विशिष्ट कार्य करते हैं। इनके नाम डबल अंडरस्कोर (__) से शुरू होते हैं। ये सभी फंक्शन नाम रिजर्व्ड हैं और इन्हें संबंधित मैजिकल कार्यक्षमता के अलावा किसी अन्य उद्देश्य के लिए उपयोग नहीं किया जा सकता। किसी क्लास में मैजिक मेथड public घोषित किया जाना चाहिए। ये मेथड्स इंटरसेप्टर्स के रूप में कार्य करते हैं जो विशिष्ट शर्तें पूरी होने पर ऑटोमैटिकली कॉल किए जाते हैं।

उपलब्ध मैजिक मेथड्स

1. __sleep() - सीरियलाइज़ेशन से पहले

public __sleep(): array

serialize() मेथड चेक करता है कि क्लास में __sleep() फंक्शन है या नहीं। यदि हां, तो सीरियलाइज़ेशन से पहले यह फंक्शन 실행 होता है। यह उन सभी वेरिएबल्स के नामों की सरणी लौटाता है जिन्हें सीरियलाइज़ किया जाना चाहिए।

2. __wakeup() - अनसीरियलाइज़ेशन के बाद

public __wakeup(): void

unserialize() चेक करता है कि __wakeup() मैजिक नाम वाला फंक्शन मौजूद है या नहीं। यदि मौजूद है, तो यह फंक्शन उन संसाधनों को पुनर्निर्मित कर सकता है जो ऑब्जेक्ट के पास हो सकते हैं।

3. __serialize() - कस्टम सीरियलाइज़ेशन (PHP 7.4+)

public __serialize(): array

serialize() यह भी चेक करता है कि क्लास में __serialize() मेथड है या नहीं। यदि है, तो सीरियलाइज़ेशन से पहले यह निष्पादित होता है। यह एक associative array of key/value pairs बनाकर लौटाता है जो ऑब्जेक्ट के सीरियलाइज़्ड रूप को दर्शाता है।

4. __unserialize() - कस्टम अनसीरियलाइज़ेशन (PHP 7.4+)

public __unserialize(array $data): void

unserialize() भी चेक करता है कि __unserialize() मौजूद है या नहीं, और यह __serialize() से लौटाई गई पुनर्स्थापित सरणी को पास करेगा। यह तब उस सरणी से ऑब्जेक्ट की प्रॉपर्टीज़ को उपयुक्त रूप से पुनर्स्थापित कर सकता है।

5. __toString() - स्ट्रिंग प्रतिनिधित्व

public __toString(): string

__toString() मेथड ऑब्जेक्ट के स्ट्रिंग प्रतिनिधित्व का वर्णन करता है। उदाहरण के लिए, echo $obj; क्या प्रिंट करेगा। यह मेथड एक स्ट्रिंग लौटाना अनिवार्य है।

6. __invoke() - ऑब्जेक्ट को फंक्शन की तरह कॉल करना

__invoke([$...]): mixed

यह मेथड तब कॉल होता है जब कोई स्क्रिप्ट किसी ऑब्जेक्ट को फंक्शन की तरह कॉल करने का प्रयास करती है।

7. __set_state() - var_export() के लिए

static __set_state(array $properties): object

यह स्टेटिक मेथड var_export() द्वारा एक्सपोर्ट की गई क्लासेज के लिए कॉल होता है। यह एक पैरामीटर प्राप्त करता है जो एक्सपोर्ट की गई प्रॉपर्टीज़ की सरणी होती है: array('property' => value, ...)।

8. __debugInfo() - var_dump() के लिए डिबग जानकारी

__debugInfo(): array

यह मेथड ऑटोमैटिकली कॉल होता है जब var_dump() किसी ऑब्जेक्ट को डंप करने के लिए निष्पादित होता है, ताकि उन प्रॉपर्टीज़ को प्राप्त किया जा सके जिन्हें दिखाया जाना चाहिए। यदि यह परिभाषित नहीं है, तो सभी public, protected और private प्रॉपर्टीज़ दिखाई जाती हैं।

9-12. प्रॉपर्टी ओवरलोडिंग मेथड्स

मेथडसिंटैक्सविवरण
__setpublic __set(string $name, mixed $value): voidinaccessible या non-existing प्रॉपर्टी में डेटा लिखने पर चलता है
__getpublic __get(string $name): mixedinaccessible या non-existing प्रॉपर्टी से डेटा पढ़ने के लिए उपयोग होता है
__issetpublic __isset(string $name): boolinaccessible प्रॉपर्टी पर isset()/empty() कॉल होने पर ट्रिगर होता है
__unsetpublic __unset(string $name): voidinaccessible प्रॉपर्टी पर unset() उपयोग होने पर आह्वान होता है

महत्वपूर्ण नोट

सभी मैजिक मेथड्स को public घोषित किया जाना चाहिए। ये PHP के आंतरिक तंत्र द्वारा स्वचालित रूप से आह्वान किए जाते हैं और इन्हें मैन्युअली कॉल नहीं करना चाहिए।

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

    explode() फ़ंक्शन PHP में explode() फ़ंक्शन किसी स्ट्रिंग को दूसरी स्ट्रिंग द्वारा विभाजित करने के लिए उपयोग किया जाता है। सिंटैक्स explode(string $separator, string $string, int $limit = PHP_INT_MAX): array पैरामीटर्स separator - बाउंड्री स्ट्रिंग string - विभाजित की जाने वाली स्ट्रिंग limit - र

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

    timezone_abbreviations_list() फ़ंक्शन PHP में timezone_abbreviations_list() फ़ंक्शन DST, ऑफसेट और टाइमजोन नाम वाली एसोसिएटिव ऐरे रिटर्न करता है। सिंटैक्स timezone_abbreviations_list(): array|false पैरामीटर्स कोई पैरामीटर नहीं रिटर्न वैल्यू timezone_abbreviations_list() फ़ंक्शन सफल होने पर ऐरे र

  1. - PHP में array() फ़ंक्शन / सरणी निर्माण

    PHP में array() भाषा निर्माण (language construct) है जो सरणी बनाता है। PHP 5.4+ में छोटा सिंटैक्स [] भी उपलब्ध है। PHP में तीन प्रकार की सरणियाँ होती हैं। सरणी के प्रकार (Array Types) प्रकारविवरणउदाहरण सूचकांकित (Indexed)संख्यात्मक कुंजियाँ (0, 1, 2...)[10, 20, 30] सहयोगी (Associative)नामित कुंजि