Sto lavorando a un'applicazione web che vede decine di utenti simultanei al secondo. Ho una classe che verrà istanziata più volte all'interno dello stesso caricamento della pagina. In quella classe, ho alcune proprietà che saranno sempre le stesse su ogni oggetto, quindi sto pensando di dichiarare queste proprietà come static
nel tentativo di ridurre la memoria che verrà utilizzata quando istanze multiple di questa classe vengono istanziate durante il stessa richiesta di pagina.L'utilizzo di metodi e proprietà statici in PHP utilizza meno memoria?
In questo modo si utilizzerà meno memoria per questa applicazione perché PHP può memorizzare il valore delle proprietà statiche solo una volta? Lo farà salvando la memoria tra utenti concorrenti o solo all'interno di ogni processo PHP?
Come funziona questo metodo? Se ciò significa che gli oggetti possono riciclare gli stessi metodi, allora perché non tutti i metodi di una classe dovrebbero essere dichiarati statici se si sta tentando di salvare in memoria?
Non mi sento del tutto a mio agio con il perché e quando si dichiarerebbe una proprietà o un metodo statico, ma capisco che dichiararli come statici consente loro di accedervi senza istanziare un oggetto della classe (questo sembra un hack ... questi metodi e proprietà dovrebbero essere altrove ... no?). Sono particolarmente interessato al modo in cui una dichiarazione static
influisce sull'utilizzo della memoria nel tentativo di mantenere l'utilizzo della memoria il più basso possibile sul mio server web ... e in generale, quindi ho una migliore comprensione di ciò che sta accadendo.
Non capisco perché questo è stato chiuso. La domanda è molto specifica e c'è sicuramente una risposta esatta e non discutibile. –
Domanda veramente buona e precisa ma voglio sottolineare la visibilità di una funzione in PHP (che è derivata da OOP) per la tua domanda "_Se questo significa che gli oggetti possono riciclare gli stessi metodi, allora perché non tutti i metodi di una classe viene dichiarata statica se si sta tentando di salvare in memoria? _ ". Ci sono le funzioni MAGGIO essere statiche, e ci sono le funzioni DEVE NON statiche - quelle che ottiene/imposta le variabili di classe che dipendono dalla procedura di inizializzazione della classe per così dire. Il limite principale è IL vero oggetto (istanziazione) di cui si ha a che fare in quel momento. – ozanmuyes