Treci la conținutul principal

PHP - Metode statice

Cuvântul cheie static este modul prin care creezi metode și proprietăți statice.

Ce face specială o metodă statică este faptul că o poți apela direct, fără să fie nevoie să creezi o instanță a clasei ei.


Declararea unei metode statice

Adăugarea unei metode statice într-o clasă necesită un singur cuvânt cheie în plus, static:

Sintaxa declarării unei metode statice

Cuvântul cheie static se scrie înaintea numelui funcției în declarație:

index.php
<?php
class ClassName {
  public static function staticMethod() {
    echo "Hello World!";
  }
}
?>

Accesarea unei metode statice

Apelul unei metode statice are trei părți: mai întâi numele clasei, apoi două puncte duble (::) și, la final, numele metodei.

Exemplul următor declară o metodă statică numită welcome() și o apelează exact în această formă. Observă că nu se creează niciun obiect:

Exemplu

Apelează o metodă statică prin numele clasei ei:

Prompt
Creează o clasă PHP numită greeting cu o metodă statică welcome() care afișează cu echo "Hello World!". Apelează metoda statică direct folosind numele clasei, fără a crea o instanță.
Ieșire: script PHP

Exemplu

Aici, o metodă statică sum() este declarată și apoi apelată în aceeași formă: numele clasei, ::, numele metodei:

Prompt
Creează o clasă PHP numită calc cu o metodă statică sum() care primește doi parametri și returnează produsul lor. Apelează-o cu 6 și 4, apoi afișează rezultatul cu echo.
Ieșire: script PHP

Sintaxa accesării unei metode statice

Forma generală a apelului unei metode statice:

index.php
<?php
ClassName::staticMethod();
?>

PHP - Mai multe despre metodele statice

Metodele statice și cele nestatice pot sta una lângă alta într-o clasă. Ca să ajungi la o metodă statică dintr-o altă metodă a aceleiași clase, scrie self și două puncte duble (::) înaintea numelui ei:

Exemplu

Aici, constructorul apelează o metodă statică a propriei clase prin self:

Prompt
Creează o clasă PHP numită greeting cu o metodă statică welcome() care afișează cu echo "Hello World!" și un constructor care apelează metoda statică folosind cuvântul cheie self.
Ieșire: script PHP

Exemplu

O metodă dintr-o altă clasă poate apela și ea o metodă statică, atât timp cât metoda statică este public:

Prompt
Creează două clase PHP: clasa A cu o metodă statică public welcome() care afișează cu echo "Hello World!" și clasa B cu o metodă message() care apelează metoda statică a clasei A. Creează o instanță a clasei B și apelează message().
Ieșire: script PHP

Exemplu

Într-o clasă copil, apelează metoda statică a părintelui cu ajutorul cuvântului cheie parent. În acest caz, metoda statică poate fi fie public, fie protected.

Prompt
Creează o clasă PHP domain cu o metodă statică protected getWebsiteName() care returnează "PromptCookbook". Apoi creează o clasă copil domainW3 care apelează metoda statică a părintelui în constructorul său și stochează rezultatul. Afișează cu echo numele site-ului.
Ieșire: script PHP