2012-01-09 22 views
7

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?

+0

Questa non è una questione di vantaggi o svantaggi. Inoltre, hai cercato il sito? – BoltClock

+4

non è necessario creare oggetti per utilizzare metodi statici. E ci sono molte domande correlate! – meze

+0

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

risposta

22

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(); 
Problemi correlati