What is the difference between public, private, and protected in PHP?

06 Oct, 2021
Public, private and protected are called access modifiers. Just like C++, PHP also have three access modifiers such as public, private and protected. The visibility of a property, a method or a constant can be defined by prefixing the declaration with these keywords.  
If the class member declared as public then it can be accessed everywhere.
If the class members declared as protected then it can be accessed only within the class itself and by inheriting child classes.
If the class members declared as private then it may only be accessed by the class that defines the member.
Public Access modifier: This modifier is open to use inside as well as outside the class. Example:  
php
<?php // BaseClassclass pub {    public $tag_line = "A Computer Science Portal for Geeks!";    function display() {        echo $this->tag_line."<br/>";    }} // SubClassclass child extends pub {    function show(){        echo $this->tag_line;    }} // Object Declaration$obj= new child; // A Computer Science Portal for Geeks!echo $obj->tag_line."<br/>"; // A Computer Science Portal for Geeks!$obj->display(); // A Computer Science Portal for Geeks!$obj->show();?>
Output:  
A Computer Science Portal for Geeks!
A Computer Science Portal for Geeks!
A Computer Science Portal for Geeks!
Protected Access modifier: This modifier is open to use within the class in which it is defined and its parent or inherited classes.Example:  
php
<?php // Base Classclass pro {    protected $x = 500;    protected $y = 500;                 // Subtraction Function    function sub()    {        echo $sum=$this->x-$this->y . "<br/>";    }    } // SubClass - Inherited Classclass child extends pro {    function mul() //Multiply Function    {        echo $sub=$this->x*$this->y;    }} $obj= new child;$obj->sub();$obj->mul();?>
Output:  
0
250000
Private Access modifier: This modifier is open to use within the class that defines it. ( it can’t be accessed outside the class means in inherited class).Example:  
php
<?php // Base Classclass demo {    private $name="A Computer Science Portal for Geeks!";         private function show()    {        echo "This is private method of base class";    }} // Sub Classclass child extends demo {    function display()    {        echo $this->name;    }} // Object Declaration$obj= new child; // Uncaught Error: Call to private method demo::show()$obj->show(); //Undefined property: child::$name$obj->display();?>
Output:  
It will display error because private class data can not be accessed outside the class
Miscellaneous example: Example:  
php
<?phpclass BaseClass{    public $public = 'Public';    protected $protected = 'Protected';    private $private = 'Private';     function Display()    {        echo $this->public;        echo $this->protected;        echo $this->private;    }} $obj = new BaseClass();echo $obj->public;echo $obj->protected; // Cannot access protected propertyecho $obj->private; // Cannot access private property$obj->Display();  //Displays all properties class SubClass extends BaseClass{    public $public = 'Public Sub Class';    protected $protected = 'Protected Sub Class';     function Display()    {        echo $this->public;        echo $this->protected;        echo $this->private;    }} $obj2 = new SubClass();echo $obj2->public;echo $obj2->protected; // Cannot access protected propertyecho $obj2->private;  // Cannot access private property$obj2->Display(); //Displays all properties?>
Output:  
It will display error because private class data can not be accessed outside the class
 
PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.
 
gulshankumarar231
Chinmaya Dehury
Picked
Technical Scripter 2018
PHP
PHP Programs
Technical Scripter
Web Technologies
PHP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Insert Form Data into Database using PHP ?
How to convert array to string in PHP ?
How to Upload Image into Database and Display it using PHP ?
How to check whether an array is empty using PHP?
PHP | Converting string to Date and DateTime
How to Insert Form Data into Database using PHP ?
How to convert array to string in PHP ?
How to Upload Image into Database and Display it using PHP ?
How to check whether an array is empty using PHP?
How to call PHP function on the click of a Button ?