Bonjour!
oui, je sais, le titre fait 3km de long, mais j'ai de la peine à le raccourcir...
Ainsi donc, voici mon problème:
1) J'ai 2 classe A et B
2) La classe B étend la classe A
3) La classe A définit une méthode statique A::chose()
4) La classe B définit une constante ou une propriété statique B::$test
5) je voudrais afficher la constante ou propriété statique définie dans B dans la méthode de A
Et évidemment, j'y arrive pas. En définissant "const test = 'truc';" ou "public static $test = 'truc';", j'obtiens un "not defined" dans la méthode de A.
Le code est celui-ci (copiez-collez, vous verrez bien)
class A {
public static $test = 'truc A';
public static function chose () {
echo "voila : ".self::$test;
}
}
class B extends A {
public static $test = 'truc B';
}
B::chose();Là, il me crache la valeur de $test définie dans A. Donc, bêtement, je commente la déclaration dans A, et là, pouf, "undefined static var...." qu'il me dit, le mécréant!
Alors bon, je tente le coup avec un petit "const test = 'truc B'" en lieu et place de la variable statique, mais non... même problème. Est-ce qu'il y a moyen de faire fonctionner ce binz? Est-ce que ce cas de figure est totalement débile? Je n'ai pas l'impression, pourtant. Je souhaite simplement pouvoir savoir, dans A, que l'appel à la méthode statique vient de B...
Bref si qqun m'a compris, je lui dis "bravo!".
Et si en plus, ce qqun a une solution, alors là, c'est champion du monde.
Bien la bonne soirée!
rekam