Quando si passa una variabile a una funzione in PHP e la funzione modifica il valore della variabile , non ha alcun effetto sul valore della variabile di fuori del campo di applicazione della funzione . Per consentire una funzione di modificare il valore di una variabile, è necessario dichiarare espressamente tale intento anteponendo il nome della variabile con una e commerciale nella definizione della funzione . Per esempio :
funzione modify_param , ( & param ) { }
valore o un riferimento
Una funzione non può modificare il valore di una variabile al di fuori proprio ambito , perché PHP passa la variabile per valore. Si crea una copia del valore della variabile e passa la copia per la funzione . Le modifiche a tale valore influenzano solo la copia locale . Quando si passa dal riferimento utilizzando la e commerciale nella definizione della funzione , PHP passa un puntatore allo spazio di indirizzi di memoria che contiene il valore della variabile . Le operazioni sulla variabile vengono poi eseguite contro il valore globale della variabile , non una copia del suo valore .
Passing Oggetti
Quando si passa un oggetto come parametro di una funzione , PHP passa ancora l'oggetto di valore , ma passa un diverso tipo di valore . Una copia di un handle di oggetto , o identificatore , viene passato alla funzione . L' identificatore di oggetto consente la funzione di trovare lo spazio di indirizzi di memoria in cui sono memorizzati i valori dei membri dell'oggetto . Questo significa che i membri di un oggetto sono effettivamente passati per riferimento . Le operazioni che utilizzano le proprietà di un oggetto e metodi di manipolare lo spazio di indirizzamento della memoria di quei membri e cambiano i loro valori globali .
Oggetto Maniglia Copy
non tutti gli oggetti in PHP sono passati per riferimento, anche se le modifiche alle componenti oggetto influire sui valori globali. Una copia della maniglia oggetto viene passato a una funzione . Se una funzione rende un incarico che cambia gestire l'oggetto stesso , che il cambiamento non modifica l'oggetto maniglia dal momento che è passato per valore . Per consentire una funzione di modificare handle dell'oggetto , è necessario passare l'oggetto di riferimento , proprio come si farebbe con qualsiasi altra variabile in PHP .
Programmazione © www.354353.com