Metode statice în PHP OOP

Trăsături în PHP
Proprietăți statice în PHP OOP

În acest tutorial vom afla mai multe despre metodele statice din PHP OOP. Vom discuta pentru ce sunt menite metodele statice, când să le folosim, sintaxa și diferența dintre metodele statice și non-statice.

Ce sunt metodele statice în PHP?

  • Metodele statice sunt create folosind static cuvinte cheie.
  • Metodele statice ale unei clase sunt numite direct. Înseamnă, nu trebuie să creăm instanța clasei pentru a-i apela metoda statică.
  • O clasă poate conține atât metode statice, cât și non-statice.
  • Pentru a apela metoda statică a unei clase, folosim operatorul de rezoluție a domeniului ::

Sintaxa metodei statice în PHP

<?php
class ClassName {
  public static function method() {
    echo "Hello from PHP!";
  }
}
?>

Sintaxă pentru a apela metoda statică

ClassName::staticMethod();

Exemplu

<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }
}

// Calling static method
Example::greetings();
?>
  • În exemplul de mai sus, creăm o clasă care conține metoda statică.
  • Numim metoda statică a acestei clase în afara utilizând metoda rezoluției scopului.

Apelarea metodei statice în interiorul clasei – PHP

  • În PHP, auto cuvântul cheie permite apelarea propriei metode statice în interiorul clasei. Priviți următorul exemplu în care creăm o clasă cu metoda statică și o numim în interiorul constructorului clasei.
  • auto::methodName() este sintaxa generală pentru a apela metoda statică în interiorul clasei.
<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }

  public function __construct() {
    self::greetings();
  }
}

new Example();
?>

Apelarea metodei statice în cadrul unei alte clase – PHP

Este foarte interesant să folosim cazul metodelor statice, pe care le putem numi o metodă statică publică în interiorul unei alte clase. Amintiți-vă, ar trebui să fie o metodă publică statică.

<?php
class Example{
  public static function greetings() {
    echo "Hello from PHP!";
  }
}

class Example2{
  public function msg() {
    Example::greetings();
  }
}
?>

Apelarea unei metode statice în clasa copil – PHP

În cazul moștenirii, putem apela metoda statică a clasei părinte în interiorul clasei copil folosind mamă cuvânt cheie. Uită-te la exemplul de mai jos.

<?php
class Example {
  protected static function getMessage() {
    return "Message from static method";
  }
}

class Child1 extends domain {
  public $name;
  public function __construct() {
    $this->name= parent::getMessage();
  }
}

$child1= new child1();
echo $child1-> name;
?>
  • În exemplul de mai sus, creăm o clasă părinte cu o metodă statică.
  • Also, we create another class that extends the parent class.
  • Apelați metoda statică a clasei părinte folosind mamă cuvânt cheie urmat de numele metodei statice.

Notă: As we mentioned in the previous section that calling a static method inside another class required it to be public. However, in the case of calling the static method of the parent class (inheritance), the static method access modifier can be public or protejat.

Diferența dintre metodele statice și non-statice

Metoda staticăMetoda non-statică
Putem accesa numai proprietățile statice ale clasei sau ale altei clase din cadrul metodei statice.Putem accesa atât proprietățile statice, cât și cele non-statice ale clasei sau ale altei clase din cadrul metodei non-statice.
Metoda statică utilizează legarea timpurie sau legarea în timp de compilare.Metoda non-statică folosește legarea dinamică sau runtime.
Metodele statice mențin starea în timpul execuției programului, astfel încât, din cauza legării timpurii, nu pot fi suprascrise de o altă clasă.Datorită legăturii de rulare sau comportamentului dinamic al metodei non-statice, le putem suprascrie într-o altă clasă.
Alocarea memoriei în metoda statică este mai eficientă deoarece specifică un bloc de memorie în interiorul ram odată ce programul este executat. Nu o mai face niciodată până când programul se încheie.Metodele non-statice sunt mai puțin eficiente în alocarea memoriei din cauza legării dinamice. De fiecare dată când metoda non-statică este apelată, aceasta alocă memorie și dealoca după finalizarea execuției metodei.
Metoda statică vs non-statică

Referință la documentația oficială PHP a metodei statice.

Trăsături în PHP
Proprietăți statice în PHP OOP
en English
X
Derulaţi în sus