Foros del Web » Programando para Internet » PHP »

Operador de asignación

Estas en el tema de Operador de asignación en el foro de PHP en Foros del Web. Se que es algo basico... pero que significa este operador de asignacion =& para la sig linea: $reqHelloWorldMixed =& $xajax->registerFunction('helloWorld'); donde $xajax estaba declarado asi ...
  #1 (permalink)  
Antiguo 22/04/2008, 15:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 97
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Operador de asignación

Se que es algo basico... pero que significa este operador de asignacion =&
para la sig linea:

$reqHelloWorldMixed =& $xajax->registerFunction('helloWorld');

donde $xajax estaba declarado asi
$xajax = new xajax();
  #2 (permalink)  
Antiguo 22/04/2008, 15:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Operador de asignación

se le llama asignacion por referencia... osea

$a = $b;

$a copia el contenido de $b

mientras ke con...

$a =& $b;

no copia a $b sino, solo le hace una referencia...

osea son ABSOLUTAMENTE el mismo, no igual... no copia
  #3 (permalink)  
Antiguo 22/04/2008, 15:54
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Operador de asignación

Suponte que tienes una planilla de evaluación para una clase de alumnos (un papel)

Tu planilla es:

$planilla = "evaluación";


Ahora suponte que te hace falta otra planilla igual que la primera para otra aula (curso o alumnado) entonces tienes dos opciones:

1) Le sacas fotocopia: asignación por valor.
Es una nueva hoja exactamente igual que la original y te quedan dos hojas por separado.

2) Por referencia: usas la misma hoja para las dos aulas:

$planilla2 = &$planilla.

O sea, que en este segundo caso, si rayas una de las planillas, cuando quieras usarla en otra aula, será un poco dificil porque ya esta usada ya que en realidad estamos hablando de la misma planilla usadas en los dos casos... tamos??

Es exactamente lo que sucede en programación.

Veamos un pequeño ejemplo con el caso uno: asignación por valor, sigue el código y verás el ejemplo:

Código PHP:
$planilla "evaluación";
$planilla2 $planilla;
 
$planilla2 $planilla2." aula 2"// es lo mismo que $planilla2 .= "aula 2";
 
echo $planilla// imprime "evaluación"
echo $planilla2// imprime "evaluación aula 2"; 
Ejemplo del caso 2 :asignación por referencia
Código PHP:
$planilla "evaluación";
$planilla2 = &$planilla;
 
$planilla2 $planilla2." aula 2"// es lo mismo que $planilla2 .= "aula 2";
 
echo $planilla// imprime "evaluación aula 2"
echo $planilla2// imprime "evaluación aula 2"; 
En el segundo claso, al tratarse de la mismo logar de memoria para ambas variables, al modificar una se modificará la otra. Es como usar la misma planilla en las dos clases.

Intenté ser didáctico ;)

Saludos
  #4 (permalink)  
Antiguo 22/04/2008, 15:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Operador de asignación

que paciente es usermax, genial!!!
  #5 (permalink)  
Antiguo 22/04/2008, 16:03
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Operador de asignación

jeejejejej gracias pateketrueke!!!!
  #6 (permalink)  
Antiguo 02/05/2008, 14:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 97
Antigüedad: 16 años, 3 meses
Puntos: 0
De acuerdo Re: Operador de asignación

Ahh comprendo, digamos que su funcionalidad es similar o igual a la que se le daban a los apuntadores que se usaban en C++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:05.