Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 28-dic-2004, 10:29   #1 (permalink)
shinblood está en el buen camino
 
Avatar de shinblood
 
Fecha de Ingreso: diciembre-2003
Ubicación: lima
Mensajes: 210
Pregunta Que significa & delante de una funcion

Revisando por me encontre con este pedazo de code:

Código PHP:
  function &getInstance() {
           static 
$instance null;

           if (
is_null($instance)) {
               
$instance = new Singleton();
           }
           return 
$instance;
       } 
Lo me no entiendo porque pone el & delante del nombre de la función

Saludos
__________________
saludos :adios:
shinblood está desconectado   Responder Citando
Antiguo 28-dic-2004, 11:33   #2 (permalink)
Moderador
Cluster llegará a ser famoso muy prontoCluster llegará a ser famoso muy pronto
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago - Chile
Mensajes: 34.438
En general el & delante de una función o variable significa "como referencia" .. es decir, no se crea/duplica el valor o función sino que se llama a la original ...

Se usa mucho en programación orientada a objetos. Muevo tu pregunta al foro de PHP orientado a objetos pues lo que muestras es un "método" o parte de el de un objeto (classe).

Un saludo,
Cluster está desconectado   Responder Citando
Antiguo 28-dic-2004, 12:55   #3 (permalink)
shinblood está en el buen camino
 
Avatar de shinblood
 
Fecha de Ingreso: diciembre-2003
Ubicación: lima
Mensajes: 210
Cita:
Iniciado por Cluster
es decir, no se crea/duplica el valor o función sino que se llama a la original ...
No te entendi esta parte a que te refieres que busca el original?
__________________
saludos :adios:
shinblood está desconectado   Responder Citando
Antiguo 28-dic-2004, 13:52   #4 (permalink)
Moderador
Cluster llegará a ser famoso muy prontoCluster llegará a ser famoso muy pronto
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago - Chile
Mensajes: 34.438
Pues que no se crea otra instancia en memoria de la función o variable. Se toma lo que ya hay y no se crean duplicados.

http://www.php.net/manual/es/languag...riables.basics
http://es.tldp.org/Manuales-LuCAS/ma.../funciones.htm

En realidad eso de pasar una variable por "referencia" (con el &) o por "valor" (sin &) no depende de PHP (el concepto) .. Por eso, si quieres profundizar sobre el tema .. deberías buscar otro tipo de tutoriales.


Un saludo,
Cluster está desconectado   Responder Citando
Antiguo 29-dic-2004, 17:01   #5 (permalink)
sism82 ha deshabilitado el karma
 
Avatar de sism82
 
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Enviar un mensaje por MSN a sism82 Enviar un mensaje por Yahoo  a sism82
el amperson al inicio de la funcion indica que la funcion en cuestion va a regresar una referencia, no un valor. Una referencia es una variable que lo unico que contiene es la direccion de memoria del contenido de otra variable. :p es algo confuso si nunca las has usado, lee los tutoriales que te envio cluster.

saludos
__________________
Se debe llamar GNU/Linux, no solamente Linux, mas info en: http://www.gnu.org/gnu/gnu-linux-faq.es.html
sism82 está desconectado   Responder Citando
Antiguo 30-dic-2004, 07:10   #6 (permalink)
ArrauKano está en el buen camino
 
Avatar de ArrauKano
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 649
esto es sin referencia:
$a = 1;
$a = $b;

ahora hay 2 valores = a 1 en memoria

pero con referencia

$a = 1;
$a =& $b;

ahora b y a apuntan a un valor de la varaible en memoria, = ambas valen 1, pero en el primer caso se usaron 2 porciones de memoria, aki la referencia apunta a la misma porcion de memoria.
ArrauKano está desconectado   Responder Citando
Antiguo 30-dic-2004, 08:36   #7 (permalink)
Colaborador
josemi ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2002
Mensajes: 9.107
Cita:
Iniciado por ArrauKano
esto es sin referencia:
$a = 1;
$a = $b;

ahora hay 2 valores = a 1 en memoria

pero con referencia

$a = 1;
$a =& $b;

ahora b y a apuntan a un valor de la varaible en memoria, = ambas valen 1, pero en el primer caso se usaron 2 porciones de memoria, aki la referencia apunta a la misma porcion de memoria.
Mas bien el codigo es al reves:

$a = 1;
$b = $a;

y

$a = 1;
$b =& $a;

Y para completar el ejemplo, a estos dos codigos añade:

$a++;
echo $b;

En el primer caso, mostrara 1, mientras que en el segundo, mostrara 2.

En el manual http://es.php.net/manual/en/language.references.php

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Localizacion de errores para principiantes en PHP (v 0.4 - 7/4/2003)
Proyecto: Telendro , motor y sistema de bitacoras.
Blog sobre el concurso de posicionamiento: Operación Telendro
josemi está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 17:41.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93