Hola.
Si el atributo tiene el modificador de acceso 'private', entonces no le podemos asignar un valor desde fuera de la clase, directamente, lo hacemos mediante un metodo de la clase
Código PHP:
class prueba{
private $varPrueba; // estamos indicando q solo podremos acceder a este
// atributo desde esta clase mediante el modificador de
// acceso 'private', y no desde una instancia
// de la misma, y tampoco desde una clase hija de esta.
public function Mostrar() {return $this->varPrueba; }
}
$objeto = new prueba()
$objeto->varPrueba = "hola"; // aca estoy intentando establecer el valor de
// un atributo 'private' desde un
// objeto en forma directa,
// esto me va a dar un 'error fatal'
// de PHP, por q el atributo tiene el modificador
// de acceso 'private' y no 'public'
Código:
Fatal error: Cannot access private property prueba::$varPrueba in C:\AppServ\www\practica.php on line 14
Bueno Yo lei en algunos textos de q una de las virtudes de la POO es la encapsulacion. Segun lo q recuerdo, hacer lo siguiente:
Código PHP:
$objeto->varPrueba = "hola";
Va en contra de este principio. Lo q vi en los ejemplos es lo siguiente:
Código PHP:
class prueba{
private $varPrueba;
public function establecerValorAtributo($nombre, $valor){
if (!empty($nombre)) $this->$nombre = $valor;
}
public function accederValorAtributo($nombre){
echo $this->$nombre;
return;
}
}
$objeto = new prueba();
$objeto->establecerValorAtributo("varPrueba","hola");
$objeto->accederValorAtributo("varPrueba");
Ojala te sirva para aclararte un poco el panorama. Yo cuando empeze con la POO estaba encantado, pero me di cuenta q hay q respetar en lo posible las reglas q la POO establece. Espero q sigas leyendo sobre POO es un tema apasionante. Yo me baje con el Emule varios Ebooks de PHP5 y POO, Yo te recomiendo q busques libros sobre POO para aprender a aplicarla de la mejor manera, mucho exito.
chao