Mammouth du PHP |
2278 Messages
06 oct. 2011, 10:09
Le propre d'une fonction est justement de retourner des valeurs exploitables par un programme principal. On distingue parfois entre fonctions qui retournent une valeur et procédures qui font quelque chose sans retourner de valeur.
Les paramètres (ou arguments de la fonction) sont des valeurs connues du programme appelant qui lui sont passées à des fins de calcul: ce sont soit des constantes, soit des variables du programme appelant. C'est ce que l'on appelle passage par valeur.
Aucune des variables du programme appelant n'est connue de la fonction, et aucune variable déclarée dans la fonction n'est connue en-dehors de celle-ci.
<?PHP
function suivant ($x)
{
$y = $x +1;
return $y;
}
$x = 0;
$y = suivant ($x);
$d = suivant(suivant($x));
print "$x $y $d";
?>
En particulier ce code est intéressant:
<?PHP
function suivant ($x)
{
$x ++;
print "x dans la fonction $x<br />";
}
$x = 0;
$y = suivant ($x);
$d = suivant(suivant($x));
print "x $x y $y d $d";
?>
Une deuxième façon de passer les paramètres est de les passer par référence (par adresse) ce qui entraîne qu'une modification de cette valeur à l'intérieur de la fonction se retrouve dans le pogramme appelant:
<?PHP
function suivant (&$reference)
{
$reference ++;
}
$x = 0;
print "x initial $x<br />";
suivant ($x);
print " après fonction $x ";
?>
Pour qu'une fonction puisse utiliser une variable déclarée en-dehors d'elle, on peut, à l'intérieur de la fonction, la déclarer globale :
<?PHP
function feminin_valeur ($mot)
{
return $mot."e";
}
function feminin_reference (&$mot)
{
$mot.= "e";
}
function feminin_global ()
{
global $prenom;
return $prenom.="e";
}
$prenom = "Michel";
$feminin_valeur = feminin_valeur ($prenom);
print "prenom $prenom après valeur et son féminin $feminin_valeur <br />";
feminin_reference($prenom);
print "prenom $prenom après référence <br />";
feminin_global();
print "prenom après global $prenom";
?>
Quant aux $$var que j'ai aperçus dans tes essais c'est tout autre chose...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD