Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



Statique

Le fait de déclarer des membres ou des méthodes comme statiques vous permet d’y accéder sans avoir besoin d’instancier la classe. On ne peut accéder à un membre déclaré comme statique avec l’objet instancié d’une classe (bien qu’une méthode statique le peut).

La déclaration “static” doit être faite après la déclaration de visibilité. Pour des raisons de compatiblité avec PHP 4, si aucune déclaration de visibilité n’est utilisée, alors le membre ou la méthode sera traité comme s’il avait été déclaré comme “public”.

Comme les méthodes statiques sont appelables sans instance d’objet créée, la pseudo variable “$this” n’est pas disponible dans la méthode déclarée en tant que statique.

En fait, les appels de méthodes statiques sont résolus au moment de la compilation. Lorsque l’on utilise un nom de classe explicite, la méthode est déjà identifiée complètement et aucune notion d’héritage n’est appliquée. Si l’appel est effectué par le mot-clé “self”, alors “self” est traduit en la classe courante, qui est la classe appartenant au code. Ici aussi, aucune notion d’héritage n’est appliquée.

On ne peut pas accéder à des propritétés statiques à travers l’objet en utilisant l’opérateur “→“.

L’appel non-statique à des méthodes statiques génère une alerte de degré “E_STRICT”.

Exemple 19-15. Exemple avec un membre statique

<?php
class Foo
{
    public static $my_static = 'foo';
 
    public function staticValue() {
        return self::$my_static;
    }
}
 
class Bar extends Foo 
{
 
    public function fooStatic() {
        return parent::$my_static;
    }
}
 
 
print Foo::$my_static . "\n";
 
$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // propriété my_static non définie
 
// $foo::my_static n'est pas possible
 
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Exemple 19-16. Exemple avec une méthode statique

<?php
class Foo 
{
    public static function aStaticMethod() {
        // ...
    }
}
 
Foo::aStaticMethod();
?>

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright