Php : probleme simple [Résolu/Fermé]

Signaler
Messages postés
277
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
4 mai 2012
-
Messages postés
178
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2015
-
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.

7 réponses

Messages postés
178
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2015
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+
Messages postés
277
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
4 mai 2012
45
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.



?>
Messages postés
178
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2015
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;

?>
Messages postés
277
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
4 mai 2012
45
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.
Messages postés
178
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2015
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;
Messages postés
277
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
4 mai 2012
45
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
Messages postés
178
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
10 juin 2015
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.