PHP OOP – Access Modifiers

Access modifiers define how properties and methods of a class can be accessed. PHP supports public, protected, and private access levels. Public allows access from anywhere, protected allows access within the class and its children, and private restricts access to the class itself. They help ensure proper encapsulation and security in your code.

1. Types of Access Modifiers

Modifier Access Level
public Accessible from anywhere
protected Accessible inside the class and child classes
private Accessible only inside the class itself

2. Example: All Access Modifiers


class Demo {
    public $pub = "Public";
    protected $pro = "Protected";
    private $pri = "Private";

    public function show() {
        echo $this->pub . "
";
        echo $this->pro . "
";
        echo $this->pri . "
";
    }
}

$obj = new Demo();
echo $obj->pub;        // ✅ Allowed
// echo $obj->pro;     // ❌ Error: protected
// echo $obj->pri;     // ❌ Error: private
$obj->show();          // ✅ All values printed inside class
File: access_modifiers.php

3. Access in Inherited Class


class ParentClass {
    protected $msg = "Hello from parent";
}

class ChildClass extends ParentClass {
    public function display() {
        echo $this->msg;  // ✅ Allowed (protected)
    }
}

$child = new ChildClass();
$child->display();
File: access_inheritance.php