Controler les propriétés static [Résolu]

Signaler
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008
-
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008
-
Salut à tous !

Je bloque en ce moment sur un problème sur lequel je ne trouve pas de solution >_<"

J'aimerai avoir une propriété static qui puisse être vu n'importe où dans le code mais qui ne soit pas modifiable. Je ne peux pas utiliser une constante de classe puisque je souhaite enregistrer des objets.

Es ce que c'est possible ?

For every choice, a consequence (Fable)

7 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut

on a pas encore les properties en php, faut donc mettre un get_value(){return self::$value; }
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Par contre dans ton cas, (et comme le suggère coucou, enfin je pense...lol) un accesseur dédié, public et statique serait ieux, afin que ta propriété puisse être lue même sans instancier la classe d'appartenance :
public static function getValue()
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut

ouais, c'est a un public static function get_value(){return self::$value; } que je pensais...

malalam, dans d'autres langages, les properties existent sur les classes, ca te definit des setters et getters directement, mais je me suis trompe, ca se fait sur les non statics

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

eh ben une propriété statique protégée ou privée, avec un accesseur.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
@coucou => je n'ai pas compris ton commentaire. Que veux-tu dire au juste ?
Une propriété de classe statique :
protected $myStatic = null;
et un accesseur : public function __get($mProp) {}
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ok, je comprends mieux :-)
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008

Merci pour vos réponses (et désolé du retard pour ma réponse ^^")

Je cherchais à pouvoir faire un code équivalent :
<?php
var_dump(MaClass::$oTest);// Autorise l'affichage du contenu de la propriété statique.
MaClass::$sTest = 'modif'; // Erreur car la modification est interdite.
?>
Mais apparament c'est impossible à moins de passer par une méthode statique. Je voulais en être certain avant de passer à autre chose.

Encore merci !

For every choice, a consequence (Fable)