PHP ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) में, एक्सेस संशोधक क्लास गुणों और विधियों की दृश्यता को नियंत्रित करते हैं। PHP में प्राथमिक एक्सेस संशोधक सार्वजनिक, संरक्षित और निजी हैं।
यह आलेख आपको इन एक्सेस संशोधकों के उद्देश्य और उपयोग के बारे में बताएगा और समझाएगा कि उन्हें PHP OOP में प्रभावी ढंग से कैसे लागू किया जाए।
class User { public $name = "John"; public function greet() { return "Hello, " . $this->name; } } $user = new User(); echo $user->greet(); // Output: Hello, John
इस उदाहरण में, संपत्ति $name और विधि greet() दोनों सार्वजनिक हैं, जिससे उन्हें कक्षा के बाहर से सीधे एक्सेस किया जा सकता है।
class Person { protected $age = 30; protected function getAge() { return $this->age; } } class Employee extends Person { public function showAge() { return $this->getAge(); // Correct: Accesses protected method within a subclass } } $employee = new Employee(); echo $employee->showAge(); // Output: 30
इस उदाहरण में, getAge() एक संरक्षित विधि है, जो कर्मचारी वर्ग, व्यक्ति के एक उपवर्ग के भीतर पहुंच योग्य है।
class Person { protected $age = 30; protected function getAge() { return $this->age; } } $person = new Person(); echo $person->getAge(); // Error: Cannot access protected method Person::getAge()
त्रुटि संदेश: घातक त्रुटि: ध्यान में न आया त्रुटि: संरक्षित विधि तक नहीं पहुंच सकता व्यक्ति::getAge()
इस मामले में, व्यक्ति के उदाहरण से सीधे संरक्षित विधि getAge() तक पहुंचने का प्रयास करने पर त्रुटि उत्पन्न होती है क्योंकि संरक्षित विधियां कक्षा के बाहर से पहुंच योग्य नहीं होती हैं।
class BankAccount { private $balance = 1000; private function getBalance() { return $this->balance; } public function showBalance() { return $this->getBalance(); // Correct: Accesses private method within the same class } } $account = new BankAccount(); echo $account->showBalance(); // Output: 1000
इस उदाहरण में, getBalance() विधि निजी है, इसलिए इसे केवल BankAccount वर्ग के भीतर ही एक्सेस किया जा सकता है। शोबैलेंस() विधि सार्वजनिक है और इसका उपयोग अप्रत्यक्ष रूप से निजी गेटबैलेंस() तक पहुंचने के लिए किया जा सकता है।
class BankAccount { private $balance = 1000; private function getBalance() { return $this->balance; } } $account = new BankAccount(); echo $account->getBalance(); // Error: Cannot access private method BankAccount::getBalance()
त्रुटि संदेश: घातक त्रुटि: ध्यान में न आया त्रुटि: निजी पद्धति तक नहीं पहुंच सकता BankAccount::getBalance()
इस मामले में, BankAccount के उदाहरण से सीधे निजी विधि getBalance() तक पहुंचने का प्रयास करने पर एक त्रुटि उत्पन्न होती है क्योंकि निजी विधियां कक्षा के बाहर से पहुंच योग्य नहीं होती हैं।
class BankAccount { private $balance = 1000; private function getBalance() { return $this->balance; } } class SavingsAccount extends BankAccount { public function showBalance() { return $this->getBalance(); // Error: Cannot access private method BankAccount::getBalance() } } $savings = new SavingsAccount(); echo $savings->showBalance();
त्रुटि संदेश: घातक त्रुटि: ध्यान में न आया त्रुटि: निजी पद्धति तक नहीं पहुंच सकता BankAccount::getBalance()
यहाँ, निजी विधि getBalance() SavingsAccount जैसे उपवर्गों के लिए भी पहुंच योग्य नहीं है, यह दर्शाता है कि निजी विधियों को उनके परिभाषित वर्ग के बाहर नहीं पहुँचा जा सकता है।
संशोधक | कक्षा के अंदर | व्युत्पन्न वर्ग | कक्षा के बाहर |
---|---|---|---|
जनता | हाँ | हाँ | हाँ |
संरक्षित | हाँ | हाँ | नहीं |
निजी | हाँ | नहीं | नहीं |
PHP के एक्सेस संशोधक (सार्वजनिक, संरक्षित, निजी) OOP में दृश्यता और एनकैप्सुलेशन को प्रबंधित करने के लिए एक तंत्र प्रदान करते हैं। इन संशोधकों को सही ढंग से समझकर और लागू करके, आप अधिक सुरक्षित और रखरखाव योग्य कोड बना सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3