Méthodes statiques en PHP OOP

Caractéristiques en PHP
Propriétés statiques en PHP POO

Dans ce tutoriel, nous en apprendrons plus sur les méthodes statiques en PHP OOP. Nous verrons à quoi servent les méthodes statiques, quand les utiliser, la syntaxe et la différence entre les méthodes statiques et non statiques.

Que sont les méthodes statiques en PHP ?

  • Les méthodes statiques sont créées en utilisant statique mot-clé.
  • Les méthodes statiques d'une classe sont appelées directement. Cela signifie que nous n'avons pas besoin de créer l'instance de la classe pour appeler sa méthode statique.
  • Une classe peut contenir à la fois des méthodes statiques et non statiques.
  • Pour appeler la méthode statique d'une classe, nous utilisons l'opérateur de résolution de portée ::

Syntaxe de la méthode statique en PHP

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

Syntaxe pour appeler la méthode statique

ClassName::staticMethod();

Exemple

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

// Calling static method
Example::greetings();
?>
  • Dans l'exemple ci-dessus, nous créons une classe qui contient une méthode statique.
  • Nous appelons la méthode statique de cette classe à l'extérieur en utilisant la méthode de résolution de portée.

Appel d'une méthode statique à l'intérieur de la classe – PHP

  • En PHP, soi Le mot-clé permet d'appeler sa propre méthode statique à l'intérieur de la classe. Regardez l'exemple suivant dans lequel nous créons une classe avec une méthode statique et l'appelons à l'intérieur du constructeur de la classe.
  • soi::methodName() est la syntaxe générale pour appeler une méthode statique à l'intérieur de la classe.
<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }

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

new Example();
?>

Appeler une méthode statique dans une autre classe – PHP

Il est très intéressant d'utiliser le cas des méthodes statiques, que l'on peut appeler une méthode statique publique à l'intérieur d'une autre classe. N'oubliez pas qu'il doit s'agir d'une méthode statique publique.

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

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

Appeler une méthode statique dans la classe enfant – PHP

Dans le cas de l'héritage, nous pouvons appeler la méthode statique de la classe parent à l'intérieur de la classe enfant en utilisant le mère mot-clé. Regardez l'exemple ci-dessous.

<?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;
?>
  • Dans l'exemple ci-dessus, nous créons une classe parente avec une méthode statique.
  • De plus, nous créons une autre classe qui étend la classe parent.
  • Appelez la méthode statique de la classe parent en utilisant mère mot-clé suivi du nom de la méthode statique.

Remarque : Comme nous l'avons mentionné dans la section précédente, l'appel d'une méthode statique dans une autre classe nécessitait qu'elle soit publique. Cependant, dans le cas de l'appel de la méthode statique de la classe mère (héritage), le modificateur d'accès à la méthode statique peut être public or protégé.

Différence entre les méthodes statiques et non statiques

Méthode statiqueMéthode non statique
Nous ne pouvons accéder qu'aux propriétés statiques de la classe ou d'une autre classe à l'intérieur de la méthode statique.Nous pouvons accéder à la fois aux propriétés statiques et non statiques de la classe ou d'une autre classe à l'intérieur de la méthode non statique.
La méthode statique utilise une liaison anticipée ou une liaison au moment de la compilation.La méthode non statique utilise une liaison dynamique ou d'exécution.
Les méthodes statiques conservent l'état pendant l'exécution du programme, donc en raison d'une liaison précoce, elles ne peuvent pas être remplacées par une autre classe.En raison de la liaison d'exécution ou du comportement dynamique de la méthode non statique, nous pouvons les remplacer dans une autre classe.
L'allocation de mémoire dans la méthode statique est plus efficace car elle spécifie un bloc de mémoire à l'intérieur de la RAM une fois le programme exécuté. Il ne le fait plus jusqu'à ce que le programme se termine.Les méthodes non statiques sont moins efficaces dans l'allocation de mémoire en raison de la liaison dynamique. Chaque fois que la méthode non statique est appelée, elle alloue de la mémoire et désalloue une fois l'exécution de la méthode terminée.
Méthode statique ou non statique

Référence à la documentation PHP officielle de la méthode statique.

Caractéristiques en PHP
Propriétés statiques en PHP POO
en English
X
Remonter en haut