Comme le titre l'indique, lorsque PHP appelle des méthodes statiques directement en utilisant des noms de classe, il y a deux problèmes :
1 Le constructeur de la classe actuelle sera-t-il appelé ?
2 Le constructeur de la classe parent de la classe actuelle sera-t-il appelé ?
Vous devriez le tester vous-même, le navigateur est le meilleur professeur
Exemple 1 :
<?php
classe A{
}
A::myFun();
?>
Exemple 2 :
<?php
class A{
}
la classe B étend A{
}
B::myFun();
?>
1. Non
2. Non
Le constructeur n'est appelé que lors de l'instanciation. Les méthodes statiques ne génèrent pas d'instances et n'appelleront pas le constructeur
.Non, la méthode constructeur ne sera appelée que lorsqu'une classe est instanciée. Les méthodes statiques sont stockées dans la zone de code statique et sont chargées au fur et à mesure du chargement de la classe.