Bonjour,
Je suis confronté à un problème de callback.
J'ai une classe qui contient une possibilitée de callback.
J'aimerais utiliser le callback dans une autre classe de manière dynamique. i.e en tenant compte de l'état de l'objet.
L'exemple qui suit(fonctionnel) illustre ce que j'aimerais bien faire, sans être pour autant utile :
Comme call_user_func appelle uniquement des fonctions statiques, le code ci-dessus présente une erreur à cause de " protected function A1", si je lui associe la syntaxe "static function A1" alors je recois une erreur car $this n'est plus d'actualité. Pourtant j'aimerais utiliser une valeur connue lors ( ou apres) l'instanciation de A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 $test = new A; $test->test(); class A { public $param; public $c; protected function A1($param) { if($this->param == $param){return true;} } public function __construct() { $this->c = new B; $this->c->callbacks['A'] = 'A1'; } public function test() { $this->c->B1(); } } class B { public $param = true; public $callbacks = array(); public function B1() { foreach($this->callbacks as $object => $callback) { call_user_func(array($object,$callback),$this->param); } } } ?>
Existe-t'il une autre fonction pour cela, ou est-ce une dérive intellectuelle de ma part ?
merci d'avance
Johan
Partager