Php : probleme simple

Résolu
JessayeDeTrouver Messages postés 300 Statut Membre -  
serpan2 Messages postés 191 Statut Membre -
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

<?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.
Configuration: Windows XP
Firefox 3.5.5

7 réponses

  1. serpan2 Messages postés 191 Statut Membre 6
     
    Bonjour,
    c normal :))) ou est la return de $v dans la fonction ??!!

    function incrementer ($v)
    {
    $v++;
    return $v;
    }

    et n'oublie pas que dans ton code il ya l'initialisation de $v = 1;
    càd ça peut te donner tjrs 2 :))
    A+
    0
  2. JessayeDeTrouver Messages postés 300 Statut Membre 47
     
    J'ai mis le return comme tu m'as dit, mais ça ne marche pas ;(

    <?php

    /*Au départ je crée une variable nommée $v qui est égale à 1:*/
    $v=1;

    /*Ensuite je crée une fonction appelée incrementer() qui va
    tout simplement incrémenter de 1 la variable $v mis en paramètre*/
    function incrementer($v)
    {
    $v++;
    return $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.

    ?>
    0
  3. serpan2 Messages postés 191 Statut Membre 6
     
    essaye de copier coller ce code et dis donne moi le resulta:

    <?
    function incrementer($v)
    {
    $v++;
    return $v;
    }

    $v = 1;
    $resultat = incrementer($v);
    echo $resultat;

    ?>
    0
  4. JessayeDeTrouver Messages postés 300 Statut Membre 47
     
    merci beaucoup !!!, ça marche !!!!

    mais maintenant, je crée une 2ème variable $w qui, au départ vaut 5.
    Et on fait une petite modification à la fonction incrementer() : on incrémente aussi de 1 la variable $w.
    Donc si on met $v et $w en paramètres de la fonction incrementer(), est-ce que ça va marcher aussi ?
    Car, j'ai essayé, mais ça n'a pas marché, pourquoi ?

    Voici le code :

    <?php

    /*Au départ je crée 2 variables nommées $v et $w qui vaut respectivement 1 et 5:*/
    $v=1;
    $w=5;

    /*Ensuite je crée une fonction appelée incrementer() qui va
    tout simplement incrémenter de 1 la variable $v et la variable $w mis en paramètre*/
    function incrementer($v,$w)
    {
    $v++;
    $w++;
    return $v;
    return $w;
    }

    /*Ensuite on exécute la fonction incrementer():*/
    $v=incrementer($v,$w); // donc normalement, après exécution de la fonction incremente(), $v doit étre égal à 2.
    $w=incrementer($v,$w); // donc normalement, après exécution de la fonction incremente(), $w doit étre égal à 6.

    /*Ensuite on re-exécute la fonction incrementer(), sachant qu'on sait que $v est égal à 2, et $w est égal à 6:*/
    $v=incrementer($v,$w); // donc normalement, après exécution de la fonction incremente(), $v doit étre égal à 3.
    $w=incrementer($v,$w); // donc normalement, après exécution de la fonction incremente(), $w doit étre égal à 7.

    /*Ensuite on vérifie le résultat de $v et de $w:*/
    echo"$v"; // Là, c'est ok, c'est bien égal à 3.
    echo"<br>$w"; // Là, il y a un problème que ça affiche 4 au lieu de 7

    ?>

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

    Merci, bien à vous.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. serpan2 Messages postés 191 Statut Membre 6
     
    voila comment faire et j'espere que tu vas pas cree un autre compteur ;))
    puisque ta foncton va retouner 2 variales (plus que 1 variable) alors tu dois les retouner
    dans un tableau comme suit:

    function incrementer($v,$w)
    {
    $v++;
    $w++;
    return array ($v, $w);
    }

    et apres tu les récuperent de cette façon

    $resultat = incrementer($v,$w);
    echo "$resultat[0] - $resultat[1]";

    qui sont respectivement $v et $w;
    0
  7. JessayeDeTrouver Messages postés 300 Statut Membre 47
     
    Merci beaucoup !!!, ça marche !!!!

    mais maintenant, je crée une 3ème variable $x qui, au départ vaut 10.
    ... NAN, JE RIGOLE ....

    En tous cas, merci beaucoup pour ton aide et ta patience, que la vie te récompense.

    Merci encore.

    Résolu
    0
  8. serpan2 Messages postés 191 Statut Membre 6
     
    pas de quoi ;) et merci à toi aussi. je t'offre cette citation :

    Il en est des livres comme du feu de nos foyers; on va prendre ce feu chez son voisin, on l’allume chez soi, on le communique à d’autres, et il appartient à tous.
    0