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

Respuesta
 
Herramientas Desplegado
Antiguo 28-mar-2008, 06:46   #1 (permalink)
xayide ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 127
problemas al utilizar el patron singleton

hola a todos!

quiero tener un array asociativo (como una tabla hash). Quiero que sólo haya un array y que se vaya añadiendo a ese array.

Lo que me pasa es que con cada llamada se me borra lo anterior:

Código PHP:
<?php
//usando el patrón singleton
class HashTable{
    var 
$key;
    var 
$value;
    
    static private 
$hashtable NULL;
    
    private function 
__construct() {}
    
    static public function 
getInstance() {
       if (
self::$hashtable == NULL) {
          
self::$hashtable = new HashTable ();
       }
       return 
self::$hashtable;
    }
    
    function 
insert($key$val){
        
$hashtable[$key]=$val;        
        echo 
"en hashtable metodo insert";
        
print_r($hashtable);
    }
    function 
get($key){
        
$val=$hashtable[$key];
        
print_r($hashtable); 
    }
}
?>
tengo en la pantalla dos cajas de texto, meto valores y se meten en la tabla hash. Imprime
( [222
] => 1111

pero si vuelvo a la pantalla de las cajas de texto y meto otros valores, no me imprime los anteriores.

alguna sugerencia??
muchas gracias!!
xayide está desconectado   Responder Citando
Antiguo 28-mar-2008, 08:43   #2 (permalink)
Francisco01 está en el buen camino
 
Fecha de Ingreso: marzo-2007
Mensajes: 329
Enviar un mensaje por MSN a Francisco01
Re: problemas al utilizar el patron singleton

Puedes mostrar el codigo donde ejecutas los metodos de esa clase?
Francisco01 está desconectado   Responder Citando
Antiguo 28-mar-2008, 09:30   #3 (permalink)
xayide ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 127
Re: problemas al utilizar el patron singleton

esta es la llamada

$hashtable=HashTable::getInstance();

$hashtable->insert($elkey, $elvalue);

es muy simple, pero no se guarda...
xayide está desconectado   Responder Citando
Antiguo 28-mar-2008, 09:51   #4 (permalink)
theUniC está en el buen camino
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Re: problemas al utilizar el patron singleton

Me parece que el patrón singleton está mal implementado en esa definición de classe. Yo te propongo el siguiente

Código PHP:
//usando el patrón singleton
class HashTable{
    var 
$key;
    var 
$value;
        
    private 
$hashtable;
    private static 
$instance NULL;
        
    private function 
__construct() {
        
$this -> hashtable = array();
    }
        
    static public function 
getInstance() {
        if (
self::$instance == NULL) {
            
self::$instance = new HashTable ();
        }
        return 
self::$instance;
    }
        
    function 
insert($key$val){
        
$this -> hashtable[$key]=$val;        
    }

    function 
get($key){
        
$val=$this -> hashtable[$key]; 
    }


Espero que te sirva!
Saludos!
__________________
Caiman Systems - Diseño y programación de aplicaciones de gestión y páginas web
theUniC está desconectado   Responder Citando
Antiguo 28-mar-2008, 10:04   #5 (permalink)
Moderador
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 12.594
Re: problemas al utilizar el patron singleton

Recuerda que aunque tu clase use el patrón Singleton, PHP no te guarda los valores entre diferentes requests o paginas, así que tu implícitamente debes de guardar tu variable en una base de datos, o una sesión o algún medio persistente para que los valores se retengan entre paginas.

Saludos.

PD Traslado tu tema a PHP Orientado a Objetos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 28-mar-2008, 10:36   #6 (permalink)
xayide ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 127
Re: problemas al utilizar el patron singleton

Gracias! ya lo he solucionado.

Es verdad que entre páginas no se guardan las variables,y no las estaba pasando de ninguna manera.

Saludos!
xayide 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 19:01.


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