Mi stavo chiedendo quali sono i vantaggi dell'utilizzo di public static function
o private static function
anziché semplicemente public function
o private function
?PHP | Perché dovrei usare la funzione statica pubblica/privata statica invece della funzione pubblica/privata?
risposta
I metodi "normali" (in genere chiamati metodi di istanza) sono invocati su un'istanza della classe in cui sono definiti. Il metodo avrà sempre accesso al suo oggetto tramite $this
, e quindi può funzionare con i dati trasportati da quell'oggetto (e infatti modificarlo). Questo è un aspetto fondamentale della programmazione orientata agli oggetti, ed è ciò che rende una classe più di un semplice insieme di dati.
Le chiamate ai metodi statici, d'altra parte, non sono associate a un oggetto particolare. Si comportano proprio come le funzioni regolari in questo senso; infatti l'unica differenza è che possono essere contrassegnati con private
e avere anche accesso a metodi e variabili privati su istanze proprie della loro classe. Le funzioni statiche sono in realtà solo un'estensione della programmazione procedurale.
Ad esempio, un metodo di istanza è chiamato su un oggetto:
$object = new MyClass();
$result = $object->myInstanceMethod();
Procedimento statico viene chiamato sulla classe stessa:
$result = MyClass::myStaticMethod();
- 1. inoltrare la funzione statica C++
- 2. perché mostrare l'errore fatale sulla funzione statica
- 3. funzione statica e variabile statica e variabile
- 4. Sovraccarico funzione statica?
- 5. Funzione statica Guida C++
- 6. int statica in funzione
- 7. chiamata di funzione statica non statica in C++
- 8. C# classe statica perché usare?
- 9. variabile statica all'interno funzione template
- 10. Funzione locale statica C++ vs funzione globale
- 11. Funzione ricorsiva con variabile statica
- 12. Come testare una funzione statica
- 13. variabile statica globale vs variabile statica in funzione?
- 14. Dichiarare una funzione statica e successiva non statica: è standard?
- 15. Perché dovrei usare log.Println invece di fmt.Println?
- 16. Chiamata ambigua a funzione statica sovraccaricata
- 17. dovrei rendere statica questa classe?
- 18. extern su una funzione statica in C++
- 19. Perché non posso inizializzare una variabile statica chiamando una funzione statica in Swift?
- 20. La funzione in PHP è deprecata, cosa dovrei usare ora?
- 21. Devo usare l'importazione statica?
- 22. Perché dovrei usare url.openStream invece di url.getContent?
- 23. Perché non dovrei inizializzare la variabile statica nell'intestazione?
- 24. Perché restituire una nuova statica? (PHP)
- 25. PHP SET argomento predefinito in funzione come variabile statica
- 26. Ottenere namespace in una funzione statica
- 27. Metodo globale vs funzione vs classe statica
- 28. Differenza tra una funzione inline e una funzione inline statica
- 29. php statica in if
- 30. Perché dichiarare una variabile o una funzione statica in C?
Questa non è una questione di vantaggi o svantaggi. Inoltre, hai cercato il sito? – BoltClock
non è necessario creare oggetti per utilizzare metodi statici. E ci sono molte domande correlate! – meze
Sì, stavo leggendo alcuni dal sito PHP Manual, ma non mi sembra di capire il motivo per cui utilizzo i metodi statici, ho solo capito che invece di chiamare la funzione pubblica come questa '->' Posso fare questo '::' e qualche altra informazione che ho letto sui metodi statici sul sito di php manuale ... – Roland