J'ai un prototype de fonction en tant que tel:Comment passer un tableau plus des variables à une fonction en PHP?
function do_upload($file, $id, $type)
Et j'appelle la fonction comme ceci:
$this->do_upload($files, $id, 'article');
Cependant, seuls les fichiers $ est en fait d'être passés par la fonction. Je suis sûr que c'est simple mais qu'ai-je fait de mal?
EDIT:
Donc $ fichier est juste un tableau d'informations de fichier, similaire à _FILES $ et il est passé à travers bien, je fais une certaine manipulation de celui-ci plus loin dans la fonction. $ Id est défini avant que j'appelle la fonction, si je print_r() avant l'appel de fonction, je vois un ID que je m'attendais et $ type est juste une chaîne.
Cependant, si je print_r() ou mourir() soit sur $ id ou tapez $, ils sont à la fois blanc et var_dump() renvoie les éléments suivants:
die(var_dump($id));
->string(0) ""
die(var_dump($type);
->bool(false)
Juste avant l'appel de fonction: die(var_dump($id));
->string(3) "111"
Toutes les idées?
SOLUTION:
Dans le cas où quelqu'un a un problème similaire, cochez la réponse acceptée ci-dessous. Essentiellement, je devais passer le tableau $ files par référence car il utilisait l'espace de pile disponible.
Merci
Comment savez-vous que c'est la seule chose qui se passe? Saupoudrez quelques instructions 'var_dump()' là-dedans, en réduisant l'endroit où le problème se produit, et découvrez-le.Vous pouvez le faire mieux que nous pouvons ici. – gahooa
Vous devez montrer plus d'informations. Jusqu'à présent, nous ne pouvons que deviner. Ma première supposition est que les variables sont juste vides lorsque vous appelez la fonction. Ajoutez des lignes de débogage à votre code ('print_r ($ fichier), print_r ($ id)', etc) et montrez la sortie. –
Le tableau $ file est envoyé à travers. Si j'imprime print_r ($ id) avant l'appel de la fonction, j'obtiens ce que j'attendrais et l'autre chose que j'ai envoyée est une chaîne. Cependant, dans la fonction $ id et $ type sont tous les deux vides ...?! –