Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Que significa & delante de una funcion (http://www.forosdelweb.com/f68/que-significa-delante-funcion-257497/)

shinblood 28/12/2004 11:29

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 :adios:

Cluster 28/12/2004 12:33

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,

shinblood 28/12/2004 13:55

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?

Cluster 28/12/2004 14:52

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,

sism82 29/12/2004 18:01

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

ArrauKano 30/12/2004 08:10

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.

josemi 30/12/2004 09:36

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.


La zona horaria es GMT -6. Ahora son las 04:18.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.