|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 38 ![]() |
Bonsoir.
Je cherche à initialiser des variables, en dehors de tout constructeur, avec des valeurs d'autres variables. Ainsi, je voudrais faire : Code :
Code :
Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING Code :
Parse error: syntax error, unexpected T_VARIABLE Ainsi, je n'ai que la classe de constante à changer, pas les classes qui utilisent $var1, $var2 ou $var3. Dans le même genre, j'aurais besoin de faire : Code :
Code :
Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Bonjour,
commence par virer tes 2 private pour mettre public à la place
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
01
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : mars 2005 Messages : 583 ![]() |
Hello,
Le pourquoi se trouve ici : http://fr.php.net/manual/fr/language...properties.php Les valeurs par défaut ne peuvent être initialisées que par des littéraux ou des constantes. Pour le reste il faudra passer par un constructeur ou des méthodes d'initialisation.
__________________
Pourfendeur de singletons en croisade
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 38 ![]() |
Arf, pas cool !
Autant pour la classe Essai, je peux définir explicitement un constructeur au lieu d'utiliser le constructeur implicite, autant je ne vois pas comment faire pour une classe de type Constants. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() |
Salut sql_ignorant,
Je ne vois pas l'intérêt d'avoir une classe Constants avec des variables déclarées static partout. Si je suis ta logique ta classe ne devrait comporter que des constantes obligatoirement immutables alors que mettre des static var les rends mutables et elles perdent du coup leur sens Constants Ensuite si tu codes sous PHP 5.3+ il te reste le Late Static Binding qui fait des merveille dans le cadre où tu aurais besoin d'initialiser "descriptivement" des variables qui peuvent être déclarées comme const ou static et résolues toutes par le même appel à static:: Enfin, je me suis coltiné ce genre de problème et le recours au LSB m'a permis d'y apporter une soluce propre. |
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 38 ![]() |
L'intérêt ?
Confiner la portée d'une constante ! Ainsi, tu peux disposer de constante portant le même nom mais dont la portée est différente. Par exemple, la classe Constants1 peux contenir $name qui concerne l'objet1, et la classe Constants2 qui contient aussi $name mais qui concerne l'objet2. Bien sûr, je pourrais nommer mes constantes objet1_name et objet2_name, mais pourquoi rester au modèle de programmation des années 70 quand on peut utiliser des concepts plus modernes ? Quant à LSB, ne le connaissant pas, je serai ravi que tu m'en donnes plus d'explication. |
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé
![]() ![]() |
Citation:
Pour le LSB un exemple vaut mieux qu'un long discours : Code :
Je peux te garantir c'est très très pratique. Enfin une fois que tu y a goûté... |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com