par
Sékiltoyai » 22 avr. 2007, 16:23
Skitoyai, ca semble etre plus de la surcharge d'opérateur, ce que tu proposes. Je n'ai pas l'impression que cela permette de faire des fonctions à signatures multiple.
(S
ékiltoyai

)
D'après la même page :
Les appels de méthodes et l'accès aux membres peuvent être surchargés via les méthodes __call(), __get() et __set().
C'est à dire que sur les méthodes de classe, on peut faire une pseudo surcharge, c'est à dire que la méthode __call($fonction, $args) recoit le nom de la fonction est ses arguments sous forme de tableau, ce qui permet d'appeler une méthode avec le nombre et les types d'argument que l'on veut, mais l'intérêt est limité parce que c'est la méthode __call en elle même qui doit gérer toutes les fonctions à surcharger, c'est à dire que les signatures multiples restent invalides.
Et bien évidemment, il est plutôt improbable que ca fonctionne avec __construct ou __destruct (faut tester mais ca m'étonnerait beaucoup en tous cas :-/ ).
Pour le module expérimental, je crois que j'ai parlé trop vite, en fait je pense qu'il oblige juste à passer par __set, __get, et __call, même lorsque la méthode ou l'élément existe...
[quote="titerm"]
Skitoyai, ca semble etre plus de la surcharge d'opérateur, ce que tu proposes. Je n'ai pas l'impression que cela permette de faire des fonctions à signatures multiple.[/quote]
(S[b]é[/b]kiltoyai :) )
D'après la même page :
[quote]Les appels de méthodes et l'accès aux membres peuvent être surchargés via les méthodes __call(), __get() et __set().[/quote]
C'est à dire que sur les méthodes de classe, on peut faire une pseudo surcharge, c'est à dire que la méthode __call($fonction, $args) recoit le nom de la fonction est ses arguments sous forme de tableau, ce qui permet d'appeler une méthode avec le nombre et les types d'argument que l'on veut, mais l'intérêt est limité parce que c'est la méthode __call en elle même qui doit gérer toutes les fonctions à surcharger, c'est à dire que les signatures multiples restent invalides.
Et bien évidemment, il est plutôt improbable que ca fonctionne avec __construct ou __destruct (faut tester mais ca m'étonnerait beaucoup en tous cas :-/ ).
Pour le module expérimental, je crois que j'ai parlé trop vite, en fait je pense qu'il oblige juste à passer par __set, __get, et __call, même lorsque la méthode ou l'élément existe...