note 11325 rejected from language.oop by sander
| From: | sander@php.net | Date: | Sat, 06 Apr 2002 18:58:43 +0000 |
| Subject: | note 11325 rejected from language.oop by sander | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-28733@lists.php.net to get a copy of this message | ||
Buenasss otra vez:
Parece ser que en PHP los objetos estan intimamente relacionados con las variables que los albergan.
No sucede como con otros lenguajes como JAVA y C++, donde la referencia al objeto y el objeto
propiamente dicho no estan tan asociados. En Java nosotros podemos declarar un objeto, tener una
referencia a él en una variable, y si queremos, podemos dar otro valor a la variable que tenia la
referencia y el objeto no sufrirá cambios.
En php por el contrario, las variables que tienen las referencias y los objetos están muy
relacionadas. Si nosotros cambiamos la referencia a un objeto para darle el valor de otra
referencia, veremos como el objeto original (al que se apuntaba al principio) ha desaparecido (NO
EXISTE).
Esto implica que si queremos crear un numero indeterminado de objetos (usando por ejemplo un bucle
for) no podemos usar la misma referencia (variable) para crear todos los objetos. Hay que
ingeniarselas para obtener un nombre diferente de variable en cada iteracion del bucle. Para eso
podemos usar la tecnica de 'variable variables', por
ejemplo:
for($i=0;$i<100;$i++)
{
$varname="prueba".$i;
// creamos el objeto
$$varname= new Objetc();
}
como se ve en el codigo, en cada iteracion declararemos una variable
diferente, con lo que no sobreescribiremos objetos.
Saludos desde Córdoba.