Ámbito de clases PHP
Jump to navigation
Jump to search
Tipo Public
Los miembros de clases declarados como public pueden ser accedidos desde cualquier lado.Si se declaran usando var, serán definidas como public.
Tipo Private
Aquellos miembros definidos como private, únicamentede pueden ser accedidos desde la clase que los definió.
Tipo Protected
Los miembros declarados como protected, sólo desde la misma clase, desde las clases que hereden de ella y desde las clases parent.
Ejemplo
<?php
/**
* Definición de MyClass
*/
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // Funciona bien
echo $obj->protected; // Error Fatal
echo $obj->private; // Error Fatal
$obj->printHello(); // Muestra Public, Protected y Private
/**
* Definición de MyClass2
*/
class MyClass2 extends MyClass
{
// Se puede redeclarar los métodos public y protected, pero no el private
protected $protected = 'Protected2';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj2 = new MyClass2();
echo $obj2->public; // Funciona bien
echo $obj2->protected; // Error Fatal
echo $obj2->private; // Undefined
$obj2->printHello(); // Muestra Public, Protected2, Undefined
?>