Metodo statico in PHP OOP

S
Tratti in PHP
Proprietà statiche in PHP OOP

In questo tutorial. impareremo il metodo statico in PHP.

Cosa sono i metodi statici in PHP?

  • I metodi statici vengono creati utilizzando statico parola chiave.
  • I metodi statici di una classe vengono chiamati direttamente. Significa che non è necessario creare l'istanza della classe per chiamare il suo metodo statico.
  • Una classe può contenere metodi sia statici che non statici.
  • Per chiamare il metodo statico di una classe, utilizziamo l'operatore di risoluzione dell'ambito ::

Sintassi del metodo statico in PHP

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

Sintassi per chiamare il metodo statico

ClassName::staticMethod();

Esempio

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

// Calling static method
Example::greetings();
?>
  • Nell'esempio sopra, creiamo una classe che contiene un metodo statico.
  • Chiamiamo il metodo statico di questa classe all'esterno utilizzando il metodo di risoluzione dell'ambito.

Chiamare il metodo statico all'interno della classe – PHP

  • In PHP, auto la parola chiave consente di chiamare il proprio metodo statico all'interno della classe. Guarda il seguente esempio in cui creiamo una classe con metodo statico e la chiamiamo all'interno del costruttore della classe.
  • auto::methodName() è la sintassi generale per chiamare il metodo statico all'interno della classe.
<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }

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

new Example();
?>

Chiamare il metodo statico all'interno di un'altra classe: PHP

È molto interessante usare il caso di metodi statici, che possiamo chiamare un metodo statico pubblico all'interno di un'altra classe. Ricorda, dovrebbe essere un metodo statico pubblico.

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

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

Chiamare un metodo statico nella classe figlio – PHP

Nel caso dell'ereditarietà, possiamo chiamare il metodo statico della classe genitore all'interno della classe figlia usando il genitore parola chiave. Guarda l'esempio qui sotto.

<?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;
?>
  • Nell'esempio sopra, creiamo una classe genitore con un metodo statico.
  • Creiamo un'altra classe che estende la classe genitore.
  • Chiama il metodo statico della classe genitore utilizzando genitore parola chiave seguita dal nome del metodo statico.

NOTA: Come accennato nella sezione precedente, la chiamata di un metodo statico all'interno di un'altra classe richiedeva che fosse pubblico. Ma nel caso di chiamare il metodo statico della classe genitore (ereditarietà), il modificatore di accesso al metodo statico può essere la percezione or protetta.

Differenza tra metodi statici e non statici

Metodo staticoMetodo non statico
Possiamo accedere solo alle proprietà statiche della classe o di un'altra classe all'interno del metodo statico.Possiamo accedere sia alle proprietà statiche che non statiche della classe o di un'altra classe all'interno del metodo non statico.
Il metodo statico usa l'associazione anticipata o l'associazione in fase di compilazione.Il metodo non statico usa l'associazione dinamica o di runtime.
I metodi statici mantengono lo stato durante l'esecuzione del programma, quindi, a causa dell'associazione anticipata, non possono essere sovrascritti da un'altra classe.A causa dell'associazione di runtime o del comportamento dinamico del metodo non statico, possiamo sovrascriverli in un'altra classe.
L'allocazione della memoria nel metodo statico è più efficiente perché specifica un blocco di memoria all'interno della ram una volta eseguito il programma. Non lo fa mai più fino al termine del programma.I metodi non statici sono meno efficienti nell'allocazione della memoria a causa dell'associazione dinamica. Ogni volta che viene chiamato il metodo non statico, alloca memoria e dealloca al termine dell'esecuzione del metodo.
Metodo statico vs non statico

Riferimento alla documentazione PHP ufficiale del metodo statico.

Tratti in PHP
Proprietà statiche in PHP OOP

Aggiungi un commento

Rete di tutor

Condividi questo

Impara PHP dalla A alla Z