Obtenir $this dans une méthode statique
<?php
class X {
function foo() {
print_r($this);
}
function bar() {
self::foo();
}
}
?>
Une méthode statique n’a pas accès à l’objet courant, par définition.
Il est également possible d’appeler statiquement n’importe quelle méthode au sein d’une classe.
Mais lorsqu’une méthode statique appelle une méthode non statique, une erreur est produite : Non-static method x::foo() cannot be called statically.
Enfin, appeler statiquement une méthode non statique définit tout de même $this dans la méthode cible. Le caractère statique est une propriété de la méthode, pas de l’appel.
See Also
- internal static and external static [Try me]
PHP Error Messages
PHP Features
Last updated: 11 October 2026