Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 32
  1. #11
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: ..................

    Originariamente inviato da whisher
    Ciao.
    Per approfondire OOP guarda singleton
    tutorials


    grazie 1000,
    quello di php.net già lo conoscevo, ma x quello dovrei aspettare prima di passare alla versione 5 per provare, mentre l'altro non lo conoscevo

    わさび

  2. #12
    secondo me il suo problema non è avere oggetti singleton (che in realtà è solo un oggetto) ma avere X oggetti diversi evitando però di creare doppioni.

    secondo me la migliore soluzione sarebbe quella di creare 2 classi distinte
    una classe GG esattamente come hai fatto te
    una classe singleton GGManager che permette di istanziare oggetti GG e che al suo interno presenta un array di oggetti GG creati

    la classe GGManagar espone solo un metodo (statico ovviamente) createGGObject(param...)
    che controlla se all'interno dell'array esisto un oggetto con id uguale e se si ritorna quell'oggetto, altrimenti ne crea uno nuovo, lo aggiunge all'array e lo ritorna.

    So di non essere stato chiaro... provo con un piccolo esempio (lo sto facendo al volo, quindi ci possono essere errori di sintassi...)

    Codice PHP:

    class GGManager {

    static 
    GGs = new Array();

    static function 
    getGG(idblablabla...) {
    foreach(
    $GGManager::GGs as $GG) {
    if(
    $gg->id == $id) return $gg
    }
    $gg = new GG(idblablabla...);
    $GGManager::GGs[] = $gg;
    return 
    $gg

    }


    spero di aver reso l'idea... :P
    www.gext.it

  3. #13
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da tarini
    secondo me il suo problema non è avere oggetti singleton (che in realtà è solo un oggetto) ma avere X oggetti diversi evitando però di creare doppioni.

    secondo me la migliore soluzione sarebbe quella di creare 2 classi distinte
    una classe GG esattamente come hai fatto te
    una classe singleton GGManager che permette di istanziare oggetti GG e che al suo interno presenta un array di oggetti GG creati

    la classe GGManagar espone solo un metodo (statico ovviamente) createGGObject(param...)
    che controlla se all'interno dell'array esisto un oggetto con id uguale e se si ritorna quell'oggetto, altrimenti ne crea uno nuovo, lo aggiunge all'array e lo ritorna.

    So di non essere stato chiaro... provo con un piccolo esempio (lo sto facendo al volo, quindi ci possono essere errori di sintassi...)

    Codice PHP:

    class GGManager {

    static 
    GGs = new Array();

    static function 
    getGG(idblablabla...) {
    foreach(
    $GGManager::GGs as $GG) {
    if(
    $gg->id == $id) return $gg
    }
    $gg = new GG(idblablabla...);
    $GGManager::GGs[] = $gg;
    return 
    $gg

    }


    spero di aver reso l'idea... :P
    6 stato molto utile & chiaro, grazie infinite
    わさび

  4. #14

    ............

    Codice PHP:
    class GGManager 
    {
        static 
    $GGs = Array();
        static function 
    getGG($id
        {
            foreach(
    self::$GGs as $key => $GG
                {
                if(
    self::$GGs[$key]->id == $id
                {
                    return 
    $gg;
                }
            }

            
    $gg = new GG($id);
            
    self::$GGs[] = $gg;
            return 
    $gg
        }

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #15

    Re: ............

    Originariamente inviato da whisher
    Codice PHP:
    class GGManager 
    {
        static 
    $GGs = Array();
        static function 
    getGG($id
        {
            foreach(
    self::$GGs as $key => $GG
                {
                if(
    self::$GGs[$key]->id == $id
                {
                    return 
    $gg;
                }
            }

            
    $gg = new GG($id);
            
    self::$GGs[] = $gg;
            return 
    $gg
        }


    e non è uguale al mio?? :P
    www.gext.it

  6. #16

    ............

    Mi scusi sv
    era solo per rettificare
    if($gg->id == $id)



    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #17
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Scusate, ma non ho mai usato una sintassi simile,

    potreste farmi un esempio di come vengono istanziati gli oggetti e come viene verificata la presenza di un id con queste classi?

    Codice PHP:
    class GG {
        var 
    $id$nome$ruolo$available;

        
    // constructor
        
    function GG$id$nome$ruolo$available ) {
            
    $this->id = (int)$id;
            
    $this->nome $nome;
            
    $this->ruolo $ruolo;
            
    $this->available = (bool)$available;
        }
    }

    class 
    GGManager {
        static 
    $GGs = array();
        static function 
    getGG$id$nome$ruolo$available ) {
            foreach( 
    self::$GGs as $key => $GG ) {
                if( 
    self::$GGs[$key]->id == $id ) {
                    return 
    $gg;
                }
            }
            
    $gg = new GG$id$nome$ruolo$available );
            
    self::$GGs[] = $gg;
            return 
    $gg;
        }

    わさび

  8. #18
    cosa sai sulla OOP? sai cosa significa che un entità è statica ?
    www.gext.it

  9. #19
    cmq in una pagina farei:

    Codice PHP:

    //includo i file ovviamente :P

    //questi sono oggetti diversi tra loro
    $gg1 GGManager::getGG(1,"nome","impiegato",true);
    $gg2 GGManager::getGG(2,"nome2","quadro",true);
    $gg3 GGManager::getGG(3,"nome3","dirigente",true);

    //questo equivale a fare $gg4 = $gg1 (l'id è uguale)
    $gg4 GGManager::getGG(1,"nome3","dirigente",true); 
    www.gext.it

  10. #20
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da tarini
    cosa sai sulla OOP? sai cosa significa che un entità è statica ?
    ne so poco; ho letto abbastanza ma ho scritto ben poco di mano mia, ecco perchè sto cercando di sforzarmi di costruire delle classi. Si, so cosa è la static function ma non l'ho mai usata.

    Originariamente inviato da tarini
    cmq in una pagina farei:[...]
    grazie, ora vedo di fare pratica
    わさび

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.