Que me atasco ya en lo más básico y no sé por qué no me chuta el asunto, así que si me puede alguien explicar la razón de que un objeto no guarde un valor que le cambio después de creado le quedaré bien agradecida.
Es con PHP4.
Tengo una clase Uno y una clase Dos que extiende a la primera.
Desde la primera (Uno) creo uno o más objetos de la clase Dos y los guardo en un array dentro de Uno.
En Uno tengo también una función para cambiar un determinado valor .
finalmente en Uno hay una función para escribir los valores de los objetos guardados en el array.
Código PHP:
class Uno{
var $elementos;
function uno(){
$this -> elementos = array();
}
function cambiaAtributo(){
$this -> valor = 'maria castaña';
}
function agregaDos($nombre = 'campo[]', $valor = 'valor'){
$this -> elementos[] = new Dos($nombre, $valor);
}
function escribe(){
foreach($this -> elementos as $v){
echo $v -> valor . '<br />********<br />';
}
}
}
Código PHP:
class Dos extends Uno{
var $nombre;
var $valor;
function dos($nombre = 'campo[]', $valor = 'valor'){
$this -> nombre = $nombre;
$this -> valor = $valor;
}
}
Código PHP:
$pepe = new Uno();
$pepe -> agregaDos('nombre', 'perico');
foreach($pepe -> elementos as $v){
echo $v -> valor . '<br />********<br />';
}
Código PHP:
foreach($pepe -> elementos as $v){
$v -> cambiaAtributo();
echo $v -> valor . '<br />********<br />';
}
Código PHP:
foreach($pepe -> elementos as $v){
echo $v -> valor . '<br />********<br />';
}
Cita:
perico
********
maria castaña
********
perico
********
********
maria castaña
********
perico
********
¿Por qué? ¿Qué error de concepto tengo? (o cual de todos mis errores de conceptos es exactamente en este caso)Si me leíste hasta aquí, gracias verimach.
Saludos

Sin embargo te cuento que la idea es poder crear objetos Dos sin necesidad de crearlos desde Uno en determinados casos. Si creo directamente un Dos quiero poder acceder igual a los métodos definidos en Uno. ¿Es un error de concepto o está bien?

