Visualizzazione risultati 1 fino 5 di 5

Discussione: passare un riferimento ad un oggetto..per riferimento

  1. #1
    Guest

    Predefinito passare un riferimento ad un oggetto..per riferimento

    mi è sorto questo dubbio...
    se chiamo il costruttore di una classe con $a = &new costruttore();
    e poi passo $a (un riferimento) ad una funzione che prende il parametro per riferimento:

    function prova(&$object) { ...}

    cosa succede? cosa viene passato alla funzione?

    grazie..

  2. #2
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    se passi la variabile con & pass il riferimento per intero e dentro la funzione ti ritrovi la variabile stessa varibile di quella fuori...

    in questo caso un oggetto identico a quello fuori... che supporta le stesse funzionalità ;)

    qualsiasi manipolazione che farai a $a dentro la funzione si ripercuoterà anche all'esterno in quato la variabile è la stessa ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  3. #3
    Guest

    Predefinito

    grazie della risposta ma volevo sottolineare che l'oggetto $a è già un riferimento perchè creato con $a = & new..
    cosa cambia se la funzione è
    function prova(&$object) { ...}
    oppure
    function prova($object) { ...}

    volgio dire: $a è un riferimento, cosa succede se lo passo ad una funzione che prende i parametri per riferimento o ad una funzione che li prende per valore?
    Quella che li prende per valore fa cmq una copia dell'oggetto "puntato" da $a ?

    Grazie ancora....

  4. #4
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    bisogna provare per vedere come gestisce i riferimenti php :)

    in teoria tra le due chiamate che hai postato non c'è alcuna differenza in quanto passi ad entrambe i riferimenti all'oggetto... non penso proprio che php cloni l'oggetto se non c'è la &....

    bisognerebbe provare :D
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  5. #5
    Guest

    Predefinito

    Dopo alcune esperienze di passaggio di parametri, mi sembra di aver trovato un'ottima soluzione cioè l'uso intensivo dell'array $GLOBAL, che è risultata la procedura più veloce per l'esecuzione dello script, eliminando la lentissima funzione global ( e la creazione di troppe istanze di ogni classe) e appunto il passaggio di parametri alle funzioni

    per chi lo conosce, è lo stesso metodo usato da daniele_dll nel suo phpsoft :winkOLD:

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •