Código PHP:
function &getInstance() {
static $instance = null;
if (is_null($instance)) {
$instance = new Singleton();
}
return $instance;
}
Saludos
| |||
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, |
| ||||
Cita: No te entendi esta parte a que te refieres que busca el original?
Iniciado por Cluster es decir, no se crea/duplica el valor o función sino que se llama a la original ...
__________________ saludos :adios: |
| |||
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, |
| ||||
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 |
| ||||
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. |
| |||
Cita: Mas bien el codigo es al reves:
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. $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. |