La definición de variable de una clase en php5 oop sigue un control de acceso, que es:
público significa global y pueden acceder a ella subclases dentro y fuera de la clase.
privado significa privado y solo se puede usar dentro de esta clase;
protegido significa protegido; sólo se puede acceder a esta clase o en subclases o clases principales
<?php;
clase clase base {
público $público = 'público';
privado $privado = 'privado';
protegido $protegido = 'protegido';
función __construct(){
}
función print_var(){
imprimir $this->public;echo '<br />';
imprimir $this->privado; echo '<br />';
imprimir $this->protegido; echo '<br />';
}
}
clase Subclase extiende BaseClass {
// public $public = 'public2';
protegido $protegido ='protegido2';
función __construct(){
echo $this->protected;//Se puede acceder, porque la clase está definida como protegida, por lo que puede estar en esta clase o subclase, y el valor se puede repetir en subclases
eco '<br />';
echo $this->private;//error porque es privado y solo se puede usar en la clase baseclass en la que está definido.
}
}
$obj1 = nueva ClaseBase();
$obj1->print_var();
//echo $obj1->protected;//error Debido a que está protegido, solo se puede llamar dentro de esta clase o en subclases y clases principales.
//echo $obj1->private;//error privado como el anterior, solo se puede llamar dentro de esta clase
eco $obj1->público;
eco "<hora />";
$obj2 = nueva Subclase();
eco '<br />';
eco $obj2->público;echo '<br />';
echo $obj2->protegido;
//echo $obj2->privado;//error
//echo $obj2->protegido;
?>