PHP में जादू के तरीके क्या हैं? और उन्हें कैसे लागू करें?



यह आलेख आपको उदाहरणों के साथ PHP में विभिन्न मैजिक मेथड्स के विस्तृत और व्यापक ज्ञान के साथ प्रदान करेगा।

में , विशेष कार्यों को इस तरह से परिभाषित किया जा सकता है कि उन्हें स्वचालित रूप से कॉल किया जा सकता है और इन फ़ंक्शन के अंदर कोड को निष्पादित करने के लिए किसी फ़ंक्शन कॉल की आवश्यकता नहीं होती है। यह सुविधा एक विशेष विधि में उपलब्ध है जिसे जादू विधियों के रूप में जाना जाता है। इस लेख में, हम PHP में शीर्ष मैजिक विधियों पर चर्चा करेंगे।

PHP में मैजिक मेथड्स क्या हैं?

2 अंडरस्कोर (__) से शुरू होने वाले तरीकों को आमतौर पर PHP में मैजिक तरीके कहा जाता है। इन विधियों के नाम कुछ सूची तक सीमित हैं PHP समर्थित कीवर्ड जो आरक्षित हैं। तो किसी भी फ़ंक्शन को PHP जादू विधियों के नाम से परिभाषित नहीं किया जाना चाहिए।





Magic-Methods-in-PHP

आमतौर पर, इन कार्यों को उपयोगकर्ता द्वारा परिभाषित किया जाना चाहिए और उन्हें स्पष्ट रूप से कॉल करने की कोई आवश्यकता नहीं है।



PHP में मैजिक मेथड्स की सूची

  • __construct ()
  • __destruct ()
  • __call ($ मज़ा, $ arg)
  • __callStatic ($ मज़ा, $ arg)
  • __get ($ संपत्ति)
  • __set ($ संपत्ति, $ मूल्य)
  • __isset ($ सामग्री)
  • __unset ($ सामग्री)
  • __sleep ()
  • __जागो()
  • __तार()
  • __inoke ()
  • __set_state ($ सरणी)
  • __clone ()
  • __दोषमार्जन सूचना()
  • __construct (): यह एक विधि है जो किसी वस्तु के निर्माण के बाद स्वचालित रूप से कहलाती है। किसी भी प्रकार के तर्कों को यहां परिभाषित किया जा सकता है जो कि वस्तुओं के बनने पर पारित हो जाएंगे।
वर्ग नमूना {फ़ंक्शन user_def () {echo 'उपयोगकर्ता परिभाषित कंस्ट्रक्टर'} फ़ंक्शन __construct () {echo 'पूर्वनिर्धारित कंस्ट्रक्टर'}} $ obj = नया नमूना (?)?

सेलेनियम का उपयोग करके क्रॉस ब्राउज़र परीक्षण
  • __destruct (): विध्वंसक वस्तु-उन्मुख भाषा की एक सामान्य विशेषता है जो किसी विशेष वस्तु के अन्य संदर्भों के होते ही ट्रिगर हो जाती है।
user_def () // चेक ऑब्जेक्ट नष्ट हो गया है या नहीं गूंज is_object ($ obj) है। ' '!>

  • __call ($ मज़ा, $ arg): इस विधि को तब कहा जाता है जब एक अपरिभाषित या दुर्गम विधि कहा जाता है। जिसका अर्थ यह है कि किसी वस्तु पर अपरिभाषित या दुर्गम विधि को लागू करने पर उसे कॉल किया जाता है।
run ('शिक्षक') // यदि जिस विधि का अस्तित्व नहीं है, उसे ऑब्जेक्ट के भीतर कहा जाता है, तो __call () विधि को स्वचालित रूप से कहा जाएगा। $ obj-> खा ('अशोक', 'नारंगी') $ obj-> user_define ()?>



  • __callStatic ($ मज़ा, $ arg): इस विधि को तब कहा जाता है जब एक अपरिभाषित या दुर्गम विधि को स्थिर तरीके से लागू किया जाता है।
user_define ()?>

  • __get ($ संपत्ति): इस विधि का उपयोग PHP प्रॉपर्टी ओवरलोडिंग द्वारा गतिशील रूप से निर्मित वर्ग गुणों के लिए मान प्राप्त करने के लिए किया जाता है।
name = $ name $ this-> reg = $ reg} सार्वजनिक समारोह __get ($ संपत्ति नाम) {if ($ संपत्ति नाम == 'reg') {if ($ यह-> reg> 30) {वापसी $ this-> reg - 10} और {{$ यह लौटाएँ -> $ संपत्तिनाम}} बाकी {यह $ वापस करें -> $ संपत्तिनाम}}} $ obj = नया छात्र ('अशोक ’, 60) // छात्र वर्ग के साथ वस्तु को तुरंत लिखें और प्रारंभिक मान निर्दिष्ट करें कंस्ट्रक्टर के साथ संपत्तियों के लिए। गूंज 'नाम :'। $ obj-> नाम। '' // जब निजी संपत्ति तक पहुँचा जाता है, तो __get () विधि को स्वचालित रूप से कहा जाएगा, इसलिए हम अप्रत्यक्ष रूप से संपत्ति मूल्य प्राप्त कर सकते हैं। इको : रेग cho ’। $ obj-> रेग। '' // __get () विधि को स्वचालित रूप से __ कहा जाता है और यह ऑब्जेक्ट के अनुसार अलग-अलग मान लौटाता है। ?>

  • __set ($ संपत्ति, $ मूल्य): इस विधि का उपयोग PHP प्रॉपर्टी ओवरलोडिंग द्वारा गतिशील रूप से निर्मित वर्ग गुणों के लिए मान रखने के लिए किया जाता है।
नाम = $ नाम $ इस-> reg = $ reg} सार्वजनिक समारोह __set ($ संपत्ति, $ मूल्य) {अगर ($ संपत्ति == 'reg') $ मूल्य $ संपत्ति = $ मूल्य सार्वजनिक समारोह मज़ा () {गूंज ’मेरा नाम है '। $ यह-> नाम।', मेरा पंजीकरण नंबर है '। $ इस-> reg}} $ obj = नया छात्र (' अशोक ', 40) // ध्यान दें कि प्रारंभिक मूल्य कोड द्वारा बदल दिया जाएगा के नीचे। $ obj-> नाम = 'सुषमा' // 'नाम' संपत्ति सफलतापूर्वक सौंपी जाएगी। यदि कोई __set () विधि नहीं है, तो प्रोग्राम अपवाद को फेंक देगा। $ obj-> उम्र = 16 // 'reg' संपत्ति सफलतापूर्वक सौंपी जाएगी। $ obj-> reg = 160 // 160 एक अमान्य मान है, इसलिए इसे असाइन करने में विफल रहता है। $ obj-> मज़ा (?)?

  • __isset ($ सामग्री); एक अपरिभाषित या दुर्गम सदस्य के लिए isset () या खाली () कॉल करते समय इस पद्धति को बुलाया जाएगा। PHP की शुरुआत () फ़ंक्शन का उपयोग करके यह जांचना स्वचालित रूप से लागू होता है कि क्या एक आवश्यक अतिभारित संपत्ति सेट है या नहीं।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक कार्य __isset ($ सामग्री) {echo '{$ सामग्री} संपत्ति निजी है __isset () विधि को स्वचालित रूप से कहा जाता है। 'इको इस्सेट ($ यह -> $ सामग्री)}} $ obj = नया छात्र (' अशोक ', 30) // प्रारंभ में सौंपा गया। गूंज ($ obj-> लिंग), '' गूंज isset ($ obj-> नाम), '' गूंज isset ($ obj-> reg), ''?> है

  • __unset ($ सामग्री): अपरिभाषित या दुर्गम सदस्य के लिए रीसेट () कॉल करते समय इस पद्धति को बुलाया जाएगा।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक समारोह __unset ($ सामग्री) {गूंज 'यह स्वचालित रूप से कहा जाता है जब हम वर्ग के बाहर () पद्धति का उपयोग करते हैं। 'इको इस्सेट ($ यह -> $ सामग्री)}} $ obj = नया छात्र (' अशोक ', 30) // प्रारंभ में सौंपा गया। unset ($ obj-> लिंग) unset ($ obj-> नाम) unset ($ obj-> reg)>?

  • __sleep (): इस विधि को पहले क्रमबद्ध () निष्पादित करते हुए कहा जाता है। यह क्रमांकन से पहले PHP वर्ग की वस्तुओं की सफाई पर ऑब्जेक्ट की संपत्ति सरणी देता है।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक समारोह __sleep () {echo ’इसे तब कहा जाता है जब क्रमबद्ध () विधि को कक्षा के बाहर कहा जाता है। '$ this-> नाम = base64_encode ($ यह-> नाम) रिटर्न ऐरे (' नाम ',' रेग ') // यह एक मान वापस करना होगा जिसमें तत्व वापस लौटे गुणों का नाम हैं। }} $ obj = नया छात्र ('अशोक') // शुरू में सौंपा गया। इको सीरियलाइज़ ($ obj) इको ''?>

जावा में स्पष्ट प्रकार की कास्टिंग
  • __जागो(): इस विधि को डिसेरिएलाइज़ेशन कहा जाता है () निष्पादित किया जाता है। यह deserialization () को लागू करने पर वस्तुओं के गुणों और संसाधनों को पुनर्स्थापित करने के लिए काम करेगा।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक समारोह __sleep () {echo ’इसे तब कहा जाता है जब क्रमबद्ध () विधि को कक्षा के बाहर कहा जाता है। '$ this-> नाम = base64_encode ($ यह-> नाम) रिटर्न ऐरे (' नाम ',' रेग ') // यह एक मान वापस करना होगा जिसमें तत्व वापस लौटे गुणों का नाम हैं। } सार्वजनिक समारोह __wakeup () {प्रतिध्वनि 'इसे तब कहा जाता है जब कक्षा के बाहर गैर-विधि () विधि कहा जाता है। '$ यह-> नाम = 2 $ यह-> लिंग =' पुरुष '}} $ obj = नया छात्र (' अशोक ') // प्रारंभ में सौंपा गया। var_dump (सीरियलाइज़ ($ obj)) var_dump (unserialize (serialize ($ obj)))?>>

  • __तार(): किसी ऑब्जेक्ट को सीधे प्रिंट करने के लिए इको विधि का उपयोग करते समय इस विधि को बुलाया जाएगा। PHP प्रिंटिंग स्टेटमेंट के साथ क्लास इंस्टेंसेस का उपयोग करते हुए एक स्ट्रिंग मान वापस करने की उम्मीद है।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक समारोह __toString () {वापसी 'go go go'}} $ obj = नया छात्र ('अशोक') // प्रारंभ में सौंपा गया। गूंज $ obj?>

  • __inoke (): इस पद्धति को एक वर्ग में परिभाषित किया गया है जिसे कॉलिंग फ़ंक्शन के तरीके से किसी ऑब्जेक्ट को कॉल करने का प्रयास करते समय कहा जाएगा।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक कार्य __invoke () {echo 'यह एक वस्तु है'}} $ obj = नया छात्र ('अशोक') // प्रारंभ में सौंपा गया । $ obj ()?>

  • __set_state ($ सरणी): Var_export () कॉल करते समय इस विधि को कहा जाता है। यह एक स्थैतिक विधि है जिसे वस्तुओं के संपत्ति के सरणी का निर्यात करते समय और इस तरह के सरणी चर को अपने तर्क के रूप में रखने की अपेक्षा है।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग}} $ obj = नया छात्र ('अशोक') // प्रारंभ में सौंपा गया। var_export ($ obj)?>?

  • __clone (): ऑब्जेक्ट कॉपी किए जाने पर इस विधि को कहा जाता है।
name = $ name $ this-> reg = $ reg $ this-> लिंग = $ लिंग} सार्वजनिक कार्य __clone () {echo __METHOD __। ’आप ऑब्जेक्ट को क्लोन कर रहे हैं। '}} $ obj = नया छात्र (' अशोक ') // शुरू में सौंपा गया। $ obj2 = क्लोन $ obj var_dump ('object1:') var_dump ($ obj) गूंज '' var_dump ('object2:') var_dump ($ obj2)?>

  • __दोषमार्जन सूचना(): गुण दिखाने के लिए किसी ऑब्जेक्ट को डंप करते समय इस विधि को var_dump () द्वारा बुलाया जाता है। यदि विधि को किसी वस्तु पर परिभाषित नहीं किया जाता है, तो सभी सार्वजनिक, संरक्षित और निजी गुण दिखाए जाएंगे।
प्रोप = $ वैल} सार्वजनिक समारोह __debugInfo () {वापसी ['प्रोपोजर्ड' => $ यह-> प्रोप ** 2,]}} var_dump (नया नमूना (22))?>

इसके साथ, हम PHP लेख में इस जादू पद्धति के अंत की घोषणा करते हैं। मुझे उम्मीद है कि आपको PHP में विभिन्न जादू के तरीकों का एक विचार मिला।

रिट्रीवर्स पुनरावर्ती c ++

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें मैजिक मेथड्स इन PHP “और मैं तुम्हारे पास वापस आ जाऊंगा।