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

PHP & Base de données Discussion :

Appel de fonction [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut Appel de fonction
    Bonjour, j'ai un petit problème, je n'arrive pas à exécuter une fonction toute simple.

    D'abord je vous montre le petit code, et ensuite je vos explique

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
     
    /*Au départ je crée une variable nommée $v qui est égale à 1:*/
    $v=1;
     
     
    /*Ensuite je crée une fonction nommée incrementer() qui va 
    tout simplement incrémenter de 1 la variable $v mis en paramètre*/
    function incrementer($v)
    {$v++;}
     
    /*Ensuite on exécute la fonction incrementer():*/
    incrementer($v);  // donc normalement, après exécution de la fonction incremente(), $v doit étre égal à 2.
     
     
     
    /*Ensuite on re-exécute la fonction incrementer(), sachant qu'on sait que $v est égal à 2:*/
    incrementer($v);  // donc normalement, après exécution de la fonction incremente(), $v doit étre égal à 3. 
     
     
    /*Ensuite on vérifie le résultat de $v:*/
    echo"$v";  // C'est là ou j'ai un problème, car ça m'affiche 1 au lieu de 3.
     
    ?>

    Donc, comme vous le voyez, au final $v vaut 1 au lieu de 3,
    je voudrais savoir ou est l(es) erreur(s) ?

    Merci, bien à vous.

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Slt,

    Il faut que ta fonction renvoie la nouvelle valeur. Là elle prend un paramètre en entrée, l'incrémente et c'est tout, mais comme ce n'est pas un passage de valeur par référence la valeur de l'appelant n'est pas modifiée.

    Tu devrais plutôt avoir un truc du genre :
    et modifier la méthode incrementer pour qu'elle renvoie la nouvelle valeur.

    Ou modification plus simple : dans la déclaration de la méthode préciser qu'il s'agit d'un passage par référence en ajoutant une esperluette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function incrementer(&$v)

  3. #3
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    merci à toi

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

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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