IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction à arguments variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut Fonction à arguments variables
    Bonjour,

    J'aimerais créer une fonction qui accepte un paramètre obligatoire, suivi éventuellement d'une série de paramètres facultatifs dont le nombre peut être variable. Jusque là, pas de problème, les fonction func_num_args() etc... permettent de faire cela.
    Le problème survient lorsque je souhaite transmettre ma série de paramètres variables reçus à une autre fonction, par exemple sprintf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function test($fixedArg) {
        $tpl = '%s';
        if (($numArgs = func_num_args()) > 1) {
            $varArgs = func_get_args();
            for ($i=0; $i<$numArgs-1; $i++) {
                $tpl .= ' %d';
            }
        }
        return sprintf($tpl, $fixedArg /*, ???? */); // passer ici mes arguments numériques
    }
    
    echo test('MaString', 10, 11, 99);
    D'avance, un tout grand merci

    A+

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152

  3. #3
    Membre confirmé
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut
    Salut, merci de m'avoir mis sur la bonne piste, qui m'a directement mené vers la solution

    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
    function test($fixedArg) {
    
        $tpl = '%s';
        if (($numArgs = func_num_args()) > 1) {
            $varArgs = func_get_args();
            for ($i=0; $i<$numArgs-1; $i++) {
                $tpl .= ' %d';
                
            }
            array_unshift($varArgs, $tpl);
        }
        return call_user_func_array('sprintf', $varArgs);
    }
    echo test('MaString', 10, 11, 99);
    Merci, bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 17/09/2014, 18h09
  2. Fonctions à arguments variables rendues impossibles par prototype
    Par Difré91 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 14/06/2010, 16h07
  3. Est-il possible d'utiliser la fonction TOP avec un argument variable ?
    Par 16-Marco dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 06/03/2007, 22h21
  4. [Débutant]Fonction à arguments variables
    Par Jahjouh dans le forum C++
    Réponses: 5
    Dernier message: 14/09/2006, 23h21
  5. Réponses: 4
    Dernier message: 31/10/2005, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo