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 sans arguments par défaut


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut fonction sans arguments par défaut
    Salut à tous
    désolé pour le titre pas très clair, mais je n'arrive pas à trouver les mots

    je suis tombé sur un morceau de code qui fait appel à une fonction par exemple
    error('toto', 1);
    curieux, je vais voir la fameuse fonction, et à ma surprise, je trouve

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function error()
    {
    ...
    }
    je regarde un peu plus loin, et je vois
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $num_args = func_num_args();
    //puis
    if ($num_args == 3)
    {
     $message = func_get_arg(0);
     $file = func_get_arg(1);
     $line = func_get_arg(2);
    }
    else if ($num_args == 2)
    {
     $file = func_get_arg(0);
     $line = func_get_arg(1);
    }
    else if ($num_args == 1)
     $message = func_get_arg(0);
    j'en ai donc déduis qu'on n'était pas obligé de préciser le nombre d'arguments que l'on attend..
    par exemple:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    function error($message, $file, $line){...}
    depuis tout ce temps, je m'éfforcais à mettre des valeurs par défaut si l'on ne passait pas tous les paramètres.
    par exemple
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    function error($message, $file='toto', $ligne=0){...}

    question : est-il préférable de donner des valeurs par defaut aux paramètres,
    ou alors ne pas donner de paramètre et tester le nombre de paramètre que recoit la fonction ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Tout dépend de ce que tu veux faire.
    Ce genre de truc peut être pratique pour appliquer une fonction sur un nombre indéfini de variables. Par contre pour remplacer les valeurs par défaut, c'est rajouter beaucoup de complication et surtout beaucoup de risques d'erreur.

    Dans le même style, certaines fonctions de PHP permettent un passage d'arguments variables (isset, echo par exemple) mais tous les arguments sont traités de la même manière à l'intérieur de la fonction.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/09/2013, 16h40
  2. template, itérateurs et argument par défaut de fonction
    Par goran kajfes dans le forum Langage
    Réponses: 5
    Dernier message: 24/05/2009, 18h00
  3. Signature d'une fonction sans argument
    Par cj227854 dans le forum C++
    Réponses: 5
    Dernier message: 20/10/2005, 17h01
  4. access : calcul d'une somme de 0 sans valeur par défaut
    Par ericbelgium dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2005, 09h05
  5. Liste déroulante sans valeur par défaut ?
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/02/2005, 16h59

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