общедоступная область: свойство (метод, переменная и т. Д.) Может быть доступно из любого класса в любом файле.
class Example {
public $foo;
}
$example = new Example;
$example->foo = 3; // everything OK
частная область: свойство может быть доступно только одному и тому же классу.
class Example {
private $foo;
}
class Child_Class extends Example {
public function some_method()
{
parent::foo = 3; // raises error
}
}
защищенная область: свойство может быть доступно только тому же классу или другим классам, которые его расширяют.
class Example {
protected $foo;
}
class Child_Class extends Example {
public function some_method()
{
parent::foo = 3; // this is OK
}
}
Все это связано с техникой, называемой инкапсуляция, в которой вы не должны допускать изменения состояния или поведения члена класса вне класса. http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)