Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script
Le fait de déclarer des propriétés ou des méthodes comme static vous permet d'y accéder sans avoir besoin d'instancier la classe.Car on ne peut accéder à une propriété déclarée comme statique avec l'objet instancié d'une classe.
Comme les méthodes statiques peuvent être appelées sans objet, la pseudo-variable $this n'est pas disponible dans la méthode déclarée en tant que statique, c'est-à-dire qu’on ne peut pas utiliser $this
Pour déclarer une méthode statique, vous devez faire précéder le mot-clé function du mot-clé static, après le type de visibilité.
Exemple :
Exemple : Copier le code
<?php function Demonstration() { return 'c\'est le résulta de la démonstration'; } class MaStaticClass { //propriété statique public static $MaStaticVar = null; // Méthode statique public static function MaStaticInit() /* cette méthode est un constructeur car elle utilise une fonction Demonstration()*/ { self::$MaStaticVar = Demonstration(); } } MaStaticClass::MaStaticInit(); // appele du constructeur echo MaStaticClass::$MaStaticVar; ?>
Même principe, c'est-à-dire qu'un attribut statique appartient à la classe et non à un
objet. Ainsi, tous les objets auront accès à cet attribut, et cet attribut aura la même
valeur pour tous les objets.
La déclaration d'un attribut statique se fait en faisant précéder son nom du mot-clé
static, comme ceci :
Exemple :
Exemple : Copier le code
<?php class Ma_classe { public static $Ma_static = 'Je suis une propriété statique'; public function staticValue() { return self::$Ma_static; } } print Ma_classe::$Ma_static . "<br />"; $ma_classe = new Ma_classe(); print $ma_classe->staticValue() . "<br />"; ?>
Les attributs statiques servent à pouvoir avoir des attributs indépendants de tout objet. Donc si vous créerez des tas d'objets, L’attribut statique aura toujours la même valeur (sauf si l'objet modifie sa valeur, bien sûr).
Ou encore : si l'un des objets modifie la valeur de l’attribut statique, tous les autres objets qui accèderont à cet attribut obtiendront la nouvelle valeur ! Car un attribut statique appartient à la classe, et il n'existe qu'en un seul exemplaire.
On n'accède pas à un attribut statique avec $this mais avec self ! self représente la classe tandis que $this représente l'objet actuellement créé.
Par carabde 20 Aout 2014