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 :
- Les noms des fonctions en PHP sont insensibles à la casse,
- Les parenthèses sont obligatoires, même s'il n'y a pas d'arguments
- Pour activer une fonction, il suffit d'indiquer son nom, suivi des
arguments éventuels entre parenthèses (parenthèses toujours obligatoires, à la fois dans la définition et dans l'appel, ainsi un nom de fonction est facilement identifiable (sauf pour les deux fonctions intégrées print et echo)
- Tout code PHP, correct syntaxiquement, peut apparaître dans une fonction et dans une définition de classe.
- En PHP 3, les fonctions doivent être définies avant qu'elles ne soient utilisées. Ce n'est plus le cas en PHP 4.ou 5
- PHP 4 ne supporte pas le surchargement de fonction, ni la destruction ou la redéfinition de fonctions déjà déclarées.
- PHP 3 ne supporte pas un nombre variable d'arguments (voir valeurs par défault d'arguments pour plus d'informations).
- PHP 4 supporte le nombre variable d'arguments et les arguments par défaut
Exemples de fonction simple comportant un seul argument :
<?php
function alert()
{
echo "Alert ! Alert ! Alert !";
}
alert();
function addition ($a,$b)
{
$c=$a+$b;
print ($c);
}
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 :
- Par défaut, un argument est transmis par valeur, ce qui signifie que seule
la valeur est transmise, une modification au sein de la fonction n'est pas
perçue à l'extérieur
- Un argument peut être transmis par référence, ce qui signifie que l'adresse
en mémoire est transmise, et que toute modification au sein de la fonction
sera perçue à l'extérieur :
function test (&$argumentByRef)
Passage d'arguments par valeur et référence
Nom du fichier : exercises_06/lesson_06_d_arg_by_reference.php
- Arguments optionnels
On parle d'arguments optionnels lorsque une le nombre d'arguments présents
dans la déclaration de la fonction est supérieur au nombre d'arguments
dans l'appel de la fonction :
<?php
maFonction(arg_1,arg_2)
function maFonction(arg_1,arg_2, arg_3,arg_4...)
{
....
}
?>
Il est possible de définir un ou plusieurs arguments optionnels; de nombreuses
fonctions intégrées en sont pourvues (fonction date....)
Pour cela il faut affecter une valeur (ou la valeur null si on veut que
null soit la valeur par défaut) à la valeur de la variable au moment où
l'on définit la fonction :
function printColored($Text, $Color="black")
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)
function maFonction()
{
....
}
?>
Pour accéder aux arguments à l'intérieur de la fonction, il faut alors utiliser une ou plusieurs parmi les fonctions suivantes
- func_get_arg : pour lire un argument spécifique par rapport à sa position lors de l'appel de la fonction
- func_get_args pour lire tous les arguments à l'aide d'un tableau
- func_num_args pour connaître la nombre d'arguments
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-2020
|
|