Exercices
Questions à choix multiple

Leçon N° 06 : Fonctions

Déclaration d'une fonction
L'instruction return
Portée de variables
Les arguments de fonctions
La récursivité
Appels dynamiques de fonctions
Notes de page

Déclaration des fonctions

Une fonction, dans la majorité des langages de programmation permet de regrouper un ensemble d'instructions qui doiventt être executés plusieurs fois dans un programme; des paramètres peuvent être envoyés à cette fonction qui pourra ou non renvoyer des valeurs.
Deux sortes de fonctions en php :
_ Les fonctions intégrées à PHP :fonction pour gérer les tableaux, les conversions...(plus de 1000 fonctions en standard)
_ Les fonctions dites "utilisateur", que l'on construit soi-même :
Les fonctions utilisateurs :
Une fonction peut être définie en utilisant la syntaxe suivante :

<?php
function nom_de_fonction ($arg_1, $arg_2, ..., $arg_n)
{
     echo "Exemple de fonction.\n";
     return $return_value;
}
?>
Syntaxe et principaux principes de fonctionnement : Exemples de fonction simple comportant un seul argument :

<?php
\\Fonction sans parametre : déclaration
function alert()
{
     echo "Alert ! Alert ! Alert !";
} // Appel de la fonction
alert();
\\---------------------------------------------------
\\Fonction avec deux parametres
\\définition :
function addition ($a,$b)
{
     $c=$a+$b;
     print ($c);
}
\\appel :
addition (2,10);
?>
Le résultat affiche 12 bien sur.Vous voyez ici qu'il y a passage de variables vers la fonction et que celle-ci récupère ses variables pour les traiter en interne
Construire un exemple simple de fonction
Nom du fichier : exercises_06/lesson_06_a_simple_function.php

Utilisation du mot-clé return

Déclaration d'une fonction avec passage et récupération de parametres :

<?php
function nom_de_la_fonction (variables)
{
     ........ Code ..........
     return ();
}
?>
Lorsque l'on utilise le mot-cléreturn, l'appel de la fonction peut se faire par l'intermédiaire d'un parametre envoyé à une autre fonction : soit la ligne de code :
print (addition(2,12))
addition(2,12) est ici un parametre de la fonction print
Nom de fonction dans un parametre
Nom du fichier : exercises_06/lesson_06_a1_function_in_parameter.php
Renvoi de plusieurs valeurs :
Plutôt que d'utiliser des variables globales pour renvoyer des valeurs, on peut renvoyer plusieurs valeurs en utilisant un tableau et, au retour, l'instruction list. par exemple.
Note 1: Une fonction peut renvoyer une référence (un alias) à l'aide de l'opérateur & :

<?php
function xxx()
{
.........
return & $myValue;
}
$result = & xxx();
?>
Nb_2: Une fonction peut contenir plusieurs mot-clés return, même si cela est en général fortement déconseillé (lisibilité du code)
Exemple de fonction avec return (renvoi d'une table de multiplication)
Nom du fichier : exercises_06/lesson_06_b_using_return.php

Portée des variables

Une variable définie au sein d'une fonction par exemple n'est pas accéssible en dehors de celle-ci. De même une variable définie en dehors d'une fonction n'est pas accéssible à l'intérieur de la fonction.
Pour donner accès à une variable, PHP met à notre disposition deux déclarations : GLOBAL et STATIC

<?php
$a = $b = 2;
somme ();
Function somme()
{
$c = $a + $b;
echo "$c";
}
?>
Dans cette exemple la valeur affichée sera 0 car les deux variables $a et $b ne sont pas connues à l' intérieur de la fonction somme(). Pour les utiliser dans la fonction, il faut les déclarer comme variables globales

<?php
$a = $b = 2;
somme ();
echo "$b";
Function somme()
{
global $a, $b;
$b = $a + $b;
}
?>
Vous pouvez écrire le même srcipt d'un autre façon

<?php
$a = $b = 2;
somme ();
echo "$b";
Function somme()
{
$GLOBAL["b"] = $GLOBAL["a"] + $GLOBAL["b"];
}
?>
Le mot-clé STATIC sert à faire en sorte que la fonction conserve la valeur d'une variable, d'un appel à l'autre (voir leçon N° 2 sur les variables)

<?php
Test();
Test();
function Test ()
{
static $a
echo "$a
"; $a++;
}
?>
La variable reste stockée et affiche 0 puis 1,2,..
Variables statique : barre en dégradé
Nom du fichier : exercises_06/lesson_06_c_using_static_variables.php
Les arguments de fonctions
_ Une fonction peut ne pas avoir d'argument, mais si elle en a, ces arguments peuvent être envoyés à la fonction de deux façons :
Passage d'argument par valeur ou référence :
Passage d'arguments par valeur et référence
Nom du fichier : exercises_06/lesson_06_d_arg_by_reference.php
Exercices sur les arguments optionnels
Nom du fichier : exercises_06/lesson_06_e_optionnal_arguments.php
  • Nombre variable d'arguments (PHP4 ou >)
    On parle de nombre variable d'arguments lorsque une le nombre d'arguments présents dans la déclaration de la fonction est inférieur au nombre d'arguments dans l'appel de la fonction :

    <?php
    maFonction(arg_1,arg_2) \\appel de la fonction avec 2 arguments
    function maFonction()\\déclaration de la fonction avec < deux arguments
    {
    ....
    }
    ?>
    Pour accéder aux arguments à l'intérieur de la fonction, il faut alors utiliser une ou plusieurs parmi les fonctions suivantes
  • Exerices sur le nombre variable d'arguments
    Nom du fichier : exercises_06/lesson_06_f_nb_variable_of_arguments.php

    La recursivité

    La récursivité consiste, pour une fonction, à s'appeler elle-même L'emploi de la récursivité en PHP est souvent relativement facile, mais les temps de réponse peuvent être plutôt longs
    Exemple de fonction récursive
    Nom du fichier : exercises_06/lesson_06_g_recursivity.php

    Appels dynamiques de fonction

    C'est fait de rediriger un fonction vers une variable qui devient à son tour cette variable. (en fait on peut mettre un nom de fonction dans une variable) Je sais ce n'est pas clair alors un petit exemple.
    Appel dynamique de fonction
    Nom du fichier : exercises_06/lesson_06_h_dynamic_call.php

    Tous droits réservés. 2005-2008