Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    [php5] Forzare distruzione oggetto

    Ho fatto una classe con php5 utilizzando gli standard nuovi per la costruzione e la distruzione degli oggetti.

    La classe che ho fatto non fa altro che automatizzare la creazione di una table in html. Una volta stampata la tabella devo distruggere l'oggetto per poterlo istanziare successivamente.
    Devo fare $oggetto->__destruct() ?

  2. #2
    Utente di HTML.it L'avatar di C232
    Registrato dal
    Dec 2004
    Messaggi
    303

    ...

    si, ma puoi fare anche nomeVariabilePrecendete=new Oggetto(); oppure
    unset(nomeVariabilePrecedente); e istanzi.
    C/C++

  3. #3
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    Re: ...

    Originariamente inviato da C232
    si, ma puoi fare anche nomeVariabilePrecendete=new Oggetto(); oppure
    unset(nomeVariabilePrecedente); e istanzi.
    ah quindi se la reistanzio viene automaticamente distrutta?
    Perfetto... devo modificare proprio poco per rendere compatibile il codice con la nuova classe

  4. #4
    Ciao,
    il metodo __destruct contiene il codice da eseguire quando l'ultimo reference all'oggetto viene distrutto.
    La distruzione può avvenire in diversi modi, con la risassegnazione, con unset oppure sempre e comunque al termine dello script
    per favore NIENTE PVT TECNICI da sconosciuti

  5. #5
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Thanks ad entrambi

  6. #6
    continuo la precisazione di fabio... il codice "da eseguire per PHP", non per il coder ... ovvero, non sei tu a dover chiamare __destruct(), ma lo invoca PHP come ben spiegato da Fabio quando non vi sono più references per un dato oggetto
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  7. #7
    mi ripreciso:

    se hai 2 istanze di un oggetto e fai un unset su una non distruggi l'oggetto in realtà (reference count != 0) e quindi __destruct() non viene, correttamente, invocato
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  8. #8
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da drAlberT
    mi ripreciso:

    se hai 2 istanze di un oggetto e fai un unset su una non distruggi l'oggetto in realtà (reference count != 0) e quindi __destruct() non viene, correttamente, invocato
    Aspè quindi se faccio
    $tabella = new Table(); e
    $tabella1 = new Table();

    anche se unsetto $tabella, finchè continuo ad utilizzare $tabella1, $tabella non viene "distrutto". E' questo che intendi?

  9. #9
    yesser
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  10. #10
    se vuoi una sola istanza dell'oggetto usa un singleton pattern
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

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.