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 propertiesclass 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.
