Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   que significa el operador "=&" (https://www.clubdelphi.com/foros/showthread.php?t=52687)

gabrielflowers 28-01-2008 17:25:48

que significa el operador "=&"
 
hola a todos, mi pregunta es la sgte: que significa el operador =&
, he estado viendo algunos proyectos de GNU y me tope con esta linea de codigo, me gustaria que me ayuden a interpretarla:
Código PHP:

$p4a =& p4a::singleton("products_catalogue");
 
$p4a->main(); 

gracias de antemano, saludos

Mick 28-01-2008 18:03:36

Uso normal:

Código:


$a = 'Uno';
$b= $a;

echo $a;  // Muestra 'Uno'
echo $b;  // Muestra 'Uno'

$a = 'Dos';

echo $a;  // Muestra 'Dos'
echo $b;  // Muestra 'Uno'

Uso de referencias:

Código:


$a = 'Uno';
$b= &$a;

echo $a;  // Muestra 'Uno'
echo $b;  // Muestra 'Uno'

$a = 'Dos';

echo $a;  // Muestra 'Dos'
echo $b;  // Muestra 'Dos'

En definitiva usando el operador & en lugar de copiarse el valor de una variable a otra, las dos variables pasan hacer referencia al mismo lugar de almacenamiento de modo que modificar el valor de una variable modifica el valor de la otra ya que en realidad hacen referencia a la misma zona de memoria.

Saludos

gabrielflowers 28-01-2008 20:41:31

gracias mick
 
gracias mick, tu respuesta fue bastante clara y convincente
con el operador =& ($a =& $b), lo que se hace es simplemente el paso del valor de una variable por referencia

lucasarts_18 28-01-2008 20:49:56

Cita:

Empezado por mick
En definitiva usando el operador & en lugar de copiarse el valor de una variable a otra, las dos variables pasan hacer referencia al mismo lugar de almacenamiento de modo que modificar el valor de una variable modifica el valor de la otra ya que en realidad hacen referencia a la misma zona de memoria.

Mick, esto es realmente útil ?, lo digo porque nunca lo he usado en mis proyectos ni en ninguno que haya tenido que modificar

Gracias...

Hasta Luego .-

Mick 29-01-2008 14:03:14

Cita:

Empezado por lucasarts_18 (Mensaje 261655)
Mick, esto es realmente útil ?, lo digo porque nunca lo he usado en mis proyectos ni en ninguno que haya tenido que modificar

Gracias...

Hasta Luego .-

Tiene sus usos, por ejemplo si hay que pasarle como parametro un array a una funcion para que modifique o añada elementos a ese mismo array hay que usar referencias ya que php no tiene punteros.

Y en php4 si se usan clases/objetos es casi obligatorio, en php 4 cuando haces:
a:= b;
si b es un objeto se crea uno nuevo y se copian todos los datos del original a este con lo que tendremos finalmente dos objetos distintos.
Si tenemos un objetos con decenas o centenas de propiedades y metodos pues duplicarlo es un poco bestia, asi que se usa la & para copiar solo un referencia al mismo objeto o para pasar ese objeto a cualquier funcion que necesite manipularlo.

En php5 el tema de los objetos lo han cambiado y ya es como en java, de modo que si se asignan un objeto a una variable se copia solo una referencia a ese mismo objeto, de modo que no hace falta usar &.

Saludos

Ñuño Martínez 29-01-2008 15:09:12

Cita:

Empezado por Mick
En php5 el tema de los objetos lo han cambiado y ya es como en java, de modo que si se asignan un objeto a una variable se copia solo una referencia a ese mismo objeto, de modo que no hace falta usar &.

No es del todo cierto que sea como Java, ya que son referencias no punteros. El manual PHP lo explica.

lucasarts_18 29-01-2008 15:35:53

Cita:

Empezado por Mick (Mensaje 261788)
Tiene sus usos, por ejemplo si hay que pasarle como parametro un array a una funcion para que modifique o añada elementos a ese mismo array hay que usar referencias ya que php no tiene punteros.

Ahora me queda más claro, además este link me ayudo a entender el tema

Hasta Luego .-


La franja horaria es GMT +2. Ahora son las 06:26:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi