What is the difference between public, private, and protected?
In PHP, public, private, and protected are access modifiers that control the visibility of class properties and methods.
publicproperties and methods can be accessed from anywhere, inside or outside the class.privateproperties and methods can only be accessed from within the class.protectedproperties and methods can be accessed from within the class or from a subclass (a class that extends the original class).
Here's an example:
<?php
class MyClass
{
public $public_property = 'I am public';
private $private_property = 'I am private';
protected $protected_property = 'I am protected';
public function publicMethod()
{
// can access all properties and methods
}
private function privateMethod()
{
// can only access private properties and methods
}
protected function protectedMethod()
{
// can access protected properties and methods, as well as public properties and methods
}
}
$obj = new MyClass();
echo $obj->public_property; // outputs 'I am public'
echo $obj->private_property; // generates an error
echo $obj->protected_property; // generates an error
$obj->publicMethod(); // can be called
$obj->privateMethod(); // generates an error
$obj->protectedMethod(); // generates an errorKeep in mind that you cannot use private or protected access modifiers on properties or methods declared at the top level of a PHP script. They can only be used inside a class.