पीएचपी ओओपी - एक्सेस संशोधक
पीएचपी - एक्सेस संशोधक
गुणों और विधियों में एक्सेस संशोधक हो सकते हैं जो नियंत्रित करते हैं कि उन्हें कहाँ पहुँचा जा सकता है।
तीन एक्सेस संशोधक हैं:
-
public
- संपत्ति या विधि को हर जगह से एक्सेस किया जा सकता है। यह डिफ़ॉल्ट है -
protected
- संपत्ति या विधि को कक्षा के भीतर और उस वर्ग से प्राप्त कक्षाओं द्वारा पहुँचा जा सकता है -
private
- संपत्ति या विधि को केवल कक्षा के भीतर ही पहुँचा जा सकता है
निम्नलिखित उदाहरण में हमने तीन अलग-अलग एक्सेस संशोधक को तीन गुणों (नाम, रंग और वजन) में जोड़ा है। यहां, यदि आप नाम संपत्ति सेट करने का प्रयास करते हैं तो यह ठीक काम करेगा (क्योंकि नाम संपत्ति सार्वजनिक है, और हर जगह से पहुंचा जा सकता है)। हालांकि, यदि आप रंग या वजन संपत्ति सेट करने का प्रयास करते हैं तो इसके परिणामस्वरूप एक घातक त्रुटि होगी (क्योंकि रंग और वजन संपत्ति संरक्षित और निजी है):
उदाहरण
<?php
class Fruit {
public
$name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>
अगले उदाहरण में हमने एक्सेस मॉडिफायर को दो फंक्शन में जोड़ा है। यहां, यदि आप set_color() या set_weight() फ़ंक्शन को कॉल करने का प्रयास करते हैं, तो इसके परिणामस्वरूप एक घातक त्रुटि होगी (क्योंकि दो कार्यों को संरक्षित और निजी माना जाता है), भले ही सभी गुण सार्वजनिक हों:
उदाहरण
<?php
class Fruit {
public
$name;
public $color;
public $weight;
function set_name($n) {
// a public function (default)
$this->name = $n;
}
protected function set_color($n) {
// a protected function
$this->color = $n;
}
private function set_weight($n) {
// a private function
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>