Public son accesibles de cualquier lugar.
<?php class miClase { public $propiedad = 'Public'; function getProperty(){ return $this->propiedad; } } $ob = new miClase(); echo $ob->propiedad; // Funciona echo $ob->getProperty(); // Funciona ?>
Protected son accesibles sólo de la clase donde fue declarada, por herencia y clases parent
<?php class miClase { protected $propiedad = 'protected'; function getProperty(){ return $this->propiedad; } } class miClase2 extends miClase { function getProperty2(){ return $this->propiedad; } } $ob = new miClase2(); echo $ob->propiedad; // ERROR echo $ob->getProperty(); // Funciona echo $ob->getProperty2(); // Funciona ?>
Private pueden accederse solamente desde la clase donde fueron definidas.
<?php class miClase { private $propiedad = 'protected'; function getProperty(){ return $this->propiedad; } } class miClase2 extends miClase { function getProperty2(){ return $this->propiedad; } } $ob = new miClase2(); echo $ob->propiedad; // ERROR echo $ob->getProperty(); // Funciona echo $ob->getProperty2(); // ERROR ?>