PHP Access Modifiers

PHP

PHP - Access Modifiers

हम Access Modifier का उपयोग करते हैं class मोड और वेरिएबल्स के लिए एक्सेस की permissions सेट करने के लिए। Properties और methods को नियंत्रित करने के लिए, Access Modifier को उन properties और methods पर लागू किया जाता है जहां उन्हें एक्सेस किया जा सकता है।

Properties और methods में access modifiers हो सकते हैं जो नियंत्रित करते हैं कि उन्हें कहाँ access किया जा सकता है।

PHP में तीन access modifiers होते हैं public, protected और private.

Modifiers Description
public properties या methods को हर जगह से यानि की class के अंदर और बाहर दोनों से एक्सेस किया जा सकता है। यह default access modifiers होता है।
protected properties या methods को class के अन्दर और उस class के subclass द्वारा access किया जा सकता है।
private properties या methods को केवल class के अंदर ही access किया जा सकता है।
PHP Access Modifiers

The public Access Modifier

जब हम public कीवर्ड किसी भी property या method के आगे लगाते हैं तो वह property और method पब्लिक हो जाती है जिसका मतलब है कि अब हम उस प्रॉपर्टी ओर मेथड को कहीं से भी एक्सेस कर सकते हैं यानि की क्लास के अंदर या बाहर दोनों जगहों से।

public Access Modifier का इस्तेमाल हम नीचे एक उदाहरण से समझेंगे

उदाहरण: PHP Public Access Modifier
<?php
class Books{

    // Pubic Properties
    public $title;
    public $price;
    public $author;

    // Public Methods
    public function getTitle(){
        return $this->title;
    }
}

// class के बाहर से class की property को एक्सेस करना
$maths = new Books();
$maths->title = 'Encyclopedias of Mathematics';
echo $maths->getTitle();

?>
Output
Encyclopedias of Mathematics

The protected Access Modifier

उदाहरण: PHP Protected Access Modifier
<?php
// Parent Class
class Add{
    // Protected Properties
    protected $one = 50;
    protected $two = 10;

    protected function addition(){
        echo "The sum is ", $this->one + $this->two, "<br>";
    }
}

// Child class
// Add class के Protected Properties को Child class द्वारा access
class Sub extends Add{
    function subtract(){
        $this->addition();
       
        echo "The difference is ", $this->one - $this->two;
    }
}

$Obj = new Sub;
$Obj->subtract();
?>
Output
The sum is 60
The difference is 40

ऊपर दिए गए उदाहरण में हमने Add नाम के एक क्लास बनाएं जिसमें हमारा 2 Protected Properties था $one और $two उसे हमने Add क्लास में भी इस्तेमाल किया और उस क्लास के बाहर चाइल्ड क्लास Sub में भी इस्तेमाल किया।

दूसरे क्लास के प्रॉपर्टी को सबक्लास द्वारा इस्तेमाल करने के बारे में PHP Inheritance चैप्टर में विस्तार से सीखेंगे

The private Access Modifier

किसी क्लास के properties और methods को उसी क्लास के बाहर से एक्सेस को रोकने के लिए private access modifier का उपयोग किया जाता हैं।

उदाहरण: PHP Private Access Modifier
<?php
class Books{

    // Private Properties
    private $title;

    public function getTitle(){
        return $this->title;
    }
}

/*class के बाहर से उस class की property
 को एक्सेस करने की कोशिश*/
$maths = new Books();
$maths->title = 'Encyclopedias of Mathematics';
echo $maths->getTitle();

?>
Output
Fatal error: Uncaught Error: Cannot access private property Books::$title

जैसा कि हमने ऊपर उदाहरण में देखा कि हम किसी भी प्राइवेट प्रॉपर्टी उस क्लास के बाहर से एक्सेस नहीं कर पा रहे है।

Private Access Modifier को क्लास के बाहर से इस्तेमाल करना

जैसा कि हमने देखा कि हम Private Access Modifier को क्लास के बाहर से इस्तेमाल नहीं कर सकते परंतु अगर हमें किसी कारणवश प्राइवेट प्रॉपर्टी को इस्तेमाल करना है तो इसके लिए हम दो पब्लिक मेथड getter और setter का इस्तेमाल कर सकते हैं जिसका हमने एक उदाहरण PHP Classes & Objects चैप्टर में देखा है तो चलिए इसे हम एक उदाहरण से समझते हैं।

उदाहरण: PHP Private Access Modifier
<?php
class Books{
    // Private Property
    private $title;

    // पब्लिक मेथड setter
    public function setTitle($title){
        $this->title = $title;
    }

    // पब्लिक मेथड getter
    public function getTitle(){
        return $this->title;
    }
}

/*class के बाहर से उस class की property
 को एक्सेस करने की कोशिश*/
$maths = new Books();
$maths->setTitle('Encyclopedias of Mathematics');
echo $maths->getTitle();

?>
Output
Encyclopedias of Mathematics
Article By: Brajlal Prasad
Created on: 19 May 2023  1177  Views
 Print Article
Report Error

If you want to report an error, or any suggestion please send us an email to [email protected]