Page 1 sur 1

call_user_func_array

Posté : 01 juin 2008, 04:23
par JusTaGlinG
Salut à tous,
Dans le but de créer un constructeur surchargé pour ma classe, j'utilise la fonction call_user_func_array qui est appellé par ma fonction __call que j'ai redéfinis.


Petit problème :

Code : Tout sélectionner

private function __call($name, $arg){ return call_user_func_array(array($this, $name), $arg); }
A l'arrivé de la variable $arg dans la fonction __call (vérifié avec un var_dump), la variable est intacte, c'est un tableau associatif, tout va bien.

En revanche, une fois arrivé dans la fonction de destination ($name = '__construct1'), ma variable n'est plus qu'une string (vérifié avec un var_dump).

Savez vous d'où pourrait venir le problème ?

Merci !!

[/code]

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 01 juin 2008, 08:26
par Sékiltoyai
call_user_func_array prend un tableau d'arguments. Si la méthode prend 5 arguments tu lui passes un tableau contenant 5 valeurs, et naturellement elles ne seront plus sous forme de tableau mais distribuées dans les arguments. Pour toi c'est pareil sauf que tu n'as qu'un argument.

Posté : 01 juin 2008, 13:21
par JusTaGlinG
D'accord, en fait ma variable $arg était déjà un tableau donc je pensais que c'était bon !
Mais j'ai mis ma variable $arg dans un nouveau tableau pour qu'il y ai bien la forme "un tableau d'argument" dont le premier élément est un tableau lui même. Ca marche !

Merci beaucoup !

Posté : 03 juin 2008, 11:53
par Truc
Modération :
Pascal L, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.