Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/07/2006, 22:09
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Bueno... eliminé por error el post que había puesto aquí... así que ahora repito algo de lo que puse.

No es que tenga que ser bueno o malo... depende de la situación. A veces es necesario.

Te puedo poner un ejemplo de cuándo se puede necesitar instanciar por referencia. Supongamos que una clase necesita conservar una referencia de otro objeto o variable:
Código PHP:
$mi_objeto 0;

class 
UnaClase{
    var 
$_obj//  Acá guardamos una referencia de un objeto que esta clase necesita.
    
function UnaClase(&$obj){ // fíjate que tomo el parámetro por referencia
        
$this->_obj =& $obj// asigno también por referencia
    
}
}

// Supongamos que tengo una variable "$mi_objeto" que necesito pasar siempre por referencia.

$instancia_valor = new UnaClase($mi_objeto);
$instancia_referencia =& new UnaClase($mi_objeto);

for(
$i=1;$i<=5;$i++){
    
$mi_objeto++;
    echo 
'La variable $mi_objeto vale : '.$instancia_valor->_obj;
    echo 
'<br />';    
    echo 
'En la instancia por valor el obj vale : '.$instancia_valor->_obj;
    echo 
'<br />';
    echo 
'En la instancia por referencia el obj vale : '.$instancia_referencia->_obj;
    echo 
'<hr />';

Como verás, si queríamos manejar una instancia de $mi_objeto tenemos que instanciar por referencia.

Saludos