Comme de bien entendu, j'ai une variable globale $varGlobale qui est initialisée et non vide.
Le souci c'est que j'ai une erreur sur la ligne d'initialisation de la propriete $var_2 de la classe MaClasse_2.
Sur PHP 3.0.18, ça fonctionne sans souci, mais la...
Je crois (de mémoire) qu'il faut explicietement déclarer que tu vas
utiliser une variable globale dans ta classe :
class MaClasse_2 extends MaClasse_1 { global $varGlobale; var $var_2 = $varGlobale; /* Erreur ici */ }
--
------------------------------ Francis
"Le présent n'est qu'un futur qui a vieilli"
Jean-Marc Molina
Bonjour
Oula carnage de bon matin. Règle OO : NE JAMAIS UTILISER DE VARIABLES GLOBALES
Pourquoi en as-tu besoin ? Pour initialiser un attribut de ta classe, utilise le constructeur de cette derrière. Le principe c'est d'encapsuler ce que tu peux dans ta classe pour garder le contrôle. Ici $varGlobale peut faire tout et n'importe quoi et contrôler la classe de l'extérieur. De plus un attribut de classe n'existe que lorsque cette classe est instanciée, il est donc normal que tu ne puisses l'initialiser. En COO il n'y a que les constantes et les variables statiques qui peuvent initialisées de la sorte. À ma connaissance PHP4 ne supporte ni l'une ni l'autre :(
J'ai la structure (succincte) suivante:
On parle de classe et non pas de structure. Une structure est un agrégat d'attributs, une classe est une structure qui possède des méthodes, attributs appelés parfois propriétés (tout dépend du langage).
Solution PHP : class MaClasse_2 extends MaClasse_1 { var $var_2;
function MaClasse_2 ($varGlobale) { $this->var_2 = $varGlobale; } }
J'ai laissé $varGlobale comme nom mais vu que ça n'est pas une globale tu devrais la renommer. Pour plus d'infos je te conseille de lire le manuel, tout y est expliqué. De plus n'oublie pas que PHP4 n'est pas un langage orienté objet comme C++, Java, Python ou encore Smalltalk. Mon conseil c'est d'attendre PHP5 et d'en reste à une programmation purement fonctionnel, sauf si tu en as vraiment besoin...
JM
-- Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Bonjour
Oula carnage de bon matin.
Règle OO : NE JAMAIS UTILISER DE VARIABLES GLOBALES
Pourquoi en as-tu besoin ?
Pour initialiser un attribut de ta classe, utilise le constructeur de cette
derrière.
Le principe c'est d'encapsuler ce que tu peux dans ta classe pour garder le
contrôle. Ici $varGlobale peut faire tout et n'importe quoi et contrôler la
classe de l'extérieur. De plus un attribut de classe n'existe que lorsque
cette classe est instanciée, il est donc normal que tu ne puisses
l'initialiser.
En COO il n'y a que les constantes et les variables statiques qui peuvent
initialisées de la sorte.
À ma connaissance PHP4 ne supporte ni l'une ni l'autre :(
J'ai la structure (succincte) suivante:
On parle de classe et non pas de structure. Une structure est un agrégat
d'attributs, une classe est une structure qui possède des méthodes,
attributs appelés parfois propriétés (tout dépend du langage).
Solution PHP :
class MaClasse_2 extends MaClasse_1 {
var $var_2;
function MaClasse_2 ($varGlobale)
{
$this->var_2 = $varGlobale;
}
}
J'ai laissé $varGlobale comme nom mais vu que ça n'est pas une globale tu
devrais la renommer.
Pour plus d'infos je te conseille de lire le manuel, tout y est expliqué. De
plus n'oublie pas que PHP4 n'est pas un langage orienté objet comme C++,
Java, Python ou encore Smalltalk. Mon conseil c'est d'attendre PHP5 et d'en
reste à une programmation purement fonctionnel, sauf si tu en as vraiment
besoin...
JM
--
Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Oula carnage de bon matin. Règle OO : NE JAMAIS UTILISER DE VARIABLES GLOBALES
Pourquoi en as-tu besoin ? Pour initialiser un attribut de ta classe, utilise le constructeur de cette derrière. Le principe c'est d'encapsuler ce que tu peux dans ta classe pour garder le contrôle. Ici $varGlobale peut faire tout et n'importe quoi et contrôler la classe de l'extérieur. De plus un attribut de classe n'existe que lorsque cette classe est instanciée, il est donc normal que tu ne puisses l'initialiser. En COO il n'y a que les constantes et les variables statiques qui peuvent initialisées de la sorte. À ma connaissance PHP4 ne supporte ni l'une ni l'autre :(
J'ai la structure (succincte) suivante:
On parle de classe et non pas de structure. Une structure est un agrégat d'attributs, une classe est une structure qui possède des méthodes, attributs appelés parfois propriétés (tout dépend du langage).
Solution PHP : class MaClasse_2 extends MaClasse_1 { var $var_2;
function MaClasse_2 ($varGlobale) { $this->var_2 = $varGlobale; } }
J'ai laissé $varGlobale comme nom mais vu que ça n'est pas une globale tu devrais la renommer. Pour plus d'infos je te conseille de lire le manuel, tout y est expliqué. De plus n'oublie pas que PHP4 n'est pas un langage orienté objet comme C++, Java, Python ou encore Smalltalk. Mon conseil c'est d'attendre PHP5 et d'en reste à une programmation purement fonctionnel, sauf si tu en as vraiment besoin...
JM
-- Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)