Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/10/2011, 17h42   #1
Futur Membre du Club
 
Inscription : janvier 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 76
Points : 19
Points : 19
Par défaut Arguments et requête dynamique

Bonjour,

Un petit souci...

Code :
1
2
3
$nom="uneFonction";
$args="'arg1','arg2','arg3'";
$unevariable=$nom($args);
ça marche à un détail qui ne me convient pas.....
En effet, dans la fonction, si je fais un print_r de$arguments, il ne voit... qu'un argument. La chaine $args est prise en tant que telle.
Je ne veux pas faire de explode dans la fonction pour isoler chaque paramètre, car ça me bloquerait l'application dans d'autres circonstances.
Y-a-t-il un moyen pour que la fonction voit 3 paramètres en construisant dynamiquement ma chaîne de caractères?
Merci
loustalet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 18h31   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Plutôt qu'une chaîne de paramètres envoie un tableau de paramètres à call_user_func_array( )
http://fr.php.net/manual/fr/function...func-array.php
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 18h34   #3
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 661
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 661
Points : 5 388
Points : 5 388
Si tu utilises ça sur une fonction que tu écris toi-même, tu peux utiliser func_num_args et func_get_args pour compter le nombre d'arguments et décomposer selon il y en a trois (comme prévu initialement) ou un seul pour le cas des chaines concaténées.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 21h30   #4
Nouveau Membre du Club
 
Inscription : novembre 2007
Messages : 43
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : novembre 2007
Messages : 43
Points : 32
Points : 32
Citation:
si je fais un print_r de$arguments
Je pige pas
Si tu veux que $arg soit un tableau c'est pas :

Code :
$args=array( arg1, arg2 , arg3 );
à la place de

Code :
$args="'arg1','arg2','arg3'";
??
greg91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2011, 00h41   #5
Futur Membre du Club
 
Inscription : janvier 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 76
Points : 19
Points : 19
Bonsoir,

En voulant une fonction avec un nombre quelconque de paramètres, issus de plusieurs sources, la fonction call_user_func_array( ) me convient bien. Je ne voulais pas utiliser func_num_args qui ne me convenais pas tout à fait.
Merci pour les réponses
loustalet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h33.


 
 
 
 
Partenaires

Hébergement Web