PHP में, स्थिर विधियों पर इंस्टेंस विधियाँ बेहतर अभ्यास हैं। किसी भी मामले में, यह कहना नहीं है कि स्थैतिक विधियां सहायक नहीं हैं, उनका एक विशिष्ट और अनूठा उद्देश्य है। यहां हम PHP में स्थिर और आवृत्ति विधियों के बीच तुलना पर चर्चा करते हैं।
यहां ध्यान दें कि इंस्टेंस मेथड हमेशा क्लास के ऑब्जेक्ट से जुड़ा होता है जबकि दूसरी ओर स्टैटिक मेथड्स हमेशा क्लास से जुड़े होते हैं।
पहले स्थैतिक विधि के बारे में बात करते हैं। PHP में स्थिर विधि अन्य ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं के समान है। PHP में स्थिर विधि का उपयोग करने के लिए महत्वपूर्ण मामले। स्थिर विधि का उपयोग तभी किया जाना चाहिए जब विशिष्ट जानकारी पूरी कक्षा के लिए स्थिर रहे। अनिवार्य रूप से, उस वर्ग की वस्तु की सहायता के बिना उस विधि तक पहुंचने के लिए स्थिर विधि का उपयोग किया जाता है।
उदाहरण
<?php
class Car{
static function getColor(){
return "blue";
}
}
echo (Car::getColor());
?> आउटपुट:
blue
स्पष्टीकरण:
उदाहरण के लिए, उपरोक्त कार्यक्रम में सोचें कि कोई प्रोग्रामर कार के बारे में जानकारी बना रहा है और उसमें आपके पास कार क्लास है और एक फ़ंक्शन getColor() है जो कार के रंग को परिभाषित करता है, इसलिए प्रत्येक ऑब्जेक्ट जिसे getColor() फ़ंक्शन की आवश्यकता होती है क्लास कार की सभी वस्तुओं के लिए समान रंग लौटाता है, इसलिए इस मामले में हम getColor() विधि को स्थिर बना सकते हैं।
आइए इंस्टेंस विधि पर चर्चा करें। एक इंस्टेंस विधि का उपयोग तब किया जाता है जब ऑब्जेक्ट बनाए बिना विधि को कॉल करने का कोई तरीका नहीं होता है। साथ ही हर बार जब विधि को कक्षा के गुणों के साथ इंटरैक्ट करने की आवश्यकता होती है तो हमें एक इंस्टेंस विधि की आवश्यकता होती है।
उदाहरण
आइए उपरोक्त मामले को एक उदाहरण के साथ प्रदर्शित करें:
<?php
class Employee{
private $empname;
function setEmpname($empname) {
$this->empname = $empname;
}
function getEmpname() {
return $this -> empname;
}
}
$obj = new Employee;
$obj -> setEmpname("Alex");
echo $obj -> getName();
?> आउटपुट:
Alex
स्पष्टीकरण:
एक कर्मचारी वर्ग पर विचार करें जिसमें setEmpname() कर्मचारी नाम पढ़ता है और getEmpname() विधि जो कर्मचारी का नाम देता है। इस मामले में, प्रत्येक कर्मचारी का नाम एक दूसरे से भिन्न होता है, इसलिए हम getEmpname() या setEmploye() विधि को स्थिर घोषित नहीं कर सकते क्योंकि हर बार ये तरीके एक चर "$empname" के साथ इंटरैक्ट करते हैं।