Php : probleme simple

Résolu
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. 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+
    1. 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.

      ?>
      1. 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;

        ?>
        1. 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.
          1. 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;
            1. 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
              1. 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.