|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PHP - Les fonctionsLa notion de fonctionOn appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du programme une série d'instructions, cela permet une simplicité du code et donc une taille de programme minimale. D'autre part, une fonction peut faire appel à elle-même, on parle alors de fonction récursive (il ne faut pas oublier de mettre une condition de sortie au risque sinon de ne pas pouvoir arrêter le programme...). La déclaration d'une fonctionPHP recèle de nombreuses fonctions intégrées permettant d'effectuer des actions courantes. Toutefois, il est possible de définir des fonctions, dites fonctions utilisateurs afin de simplifier l'exécution de séries d'instructions répétitives. Contrairement à de nombreux autres langages, PHP nécessite que l'on définisse une fonction avant que celle-ci puisse être utilisée, car pour l'appeler dans le corps du programme il faut que l'interpréteur la connaisse, c'est-à-dire qu'il connaisse son nom, ses arguments et les instructions qu'elle contient. La définition d'une fonction s'appelle "déclaration" et peut se faire n'importe où dans le code. La déclaration d'une fonction se fait grâce au mot-clé function, selon la syntaxe suivante : function Nom_De_La_Fonction(argument1, argument2, ...) { liste d'instructions } Remarques:
Appel de fonctionPour exécuter une fonction, il suffit de faire appel à elle en écrivant son nom (une fois de plus en respectant la casse) suivie d'une parenthèse ouverte (éventuellement des arguments) puis d'une parenthèse fermée : Nom_De_La_Fonction(); Remarques:
Renvoi d'une valeur par une fonctionLa fonction peut renvoyer une valeur (et donc se terminer) grâce au mot-clé return. Lorsque l'instruction return est rencontrée, la fonction évalue la valeur qui la suit, puis la renvoie au programme appelant (programme à partir duquel la fonction a été appelée). Une fonction peut contenir plusieurs instructions return, ce sera toutefois la première instruction return rencontrée qui provoquera la fin de la fonction et le renvoi de la valeur qui la suit. La syntaxe de l'instruction return est simple : return valeur_ou_variable; Les arguments d'une fonctionIl est possible de passer des arguments à une fonction, c'est-à-dire
lui fournir une valeur ou le nom d'une variable afin que la fonction puisse effectuer
des opérations sur ces arguments ou bien grâce à ces arguments.
Lorsque vous voulez utiliser un argument dans le corps de la fonction en tant que variable, celui-ci doit être précédé par le signe $. <? function dire_texte($qui, $texte = 'Bonjour') { if(empty($qui)){ // $qui est vide, on retourne faux return false; }else{ echo "$texte $qui"; // on affiche le texte return true; // fonction exécutée avec succès } } ?> Ainsi cette fonction peut être appelée de deux façons différentes : <? // Passage des deux paramètres dire_texte("cher phpeur", "Bienvenue"); // affiche "Bienvenue cher phpeur" // Utilisation de la valeur par défaut du deuxième paramètre dire_texte("cher phpeur"); // affiche "Bonjour cher phpeur" ?> Travailler sur des variables dans les fonctionsLorsque vous manipulerez des variables dans des fonctions, il vous arrivera de constater que vous avez beau modifier la variable dans la fonction celle-ci retrouve sa valeur d'origine dès que l'on sort de la fonction... Cela est du à la portée des variables, c'est-à-dire si elles ont été
définies comme variables globales ou locales.
<? $chaine = "Nombre de camions : "; function ajoute_camion($mode='') { global $chaine; static $nb=0; $nb++; // on incrémente le nombre de camions if($mode == "affiche"){ echo $chaine.$nb; // on affiche le nombre de camions } } ajoute_camion(); // nb == 1 ajoute_camion(); // nb == 2 ajoute_camion(); // nb == 3 ajoute_camion("affiche"); // affiche Nombre de camions : 4 ?> Passage de paramètre par référenceUne autre méthode pour modifier une variable consiste à la faire précéder du caractère &, précisant qu'il s'agit alors d'un alias: la valeur de la variable est modifiée à la sortie de la fonction. On parle alors de passage par référence. Dans ce cas on passe la référence (adresse mémoire) de la variable à la fonction, ce qui permet de modifier sa valeur. <? function dire_texte($qui, &$texte) { $texte = "Bienvenue $qui"; } $chaine = "Bonjour "; dire_texte("cher phpeur",$chaine); echo $chaine; // affiche "Bienvenue cher phpeur" ?> Retourner plusieurs variablesLorsque vous souhaitez qu'une fonction retourne plusieurs valeurs, le plus simple est d'utiliser un tableau. <? function nom_fonction() { ..... return array( $variable1, $variable2, $variable3 ); // on retourne les valeurs voulues dans un tableau } $retour = nom_fonction(); echo "$retour[0] - $retour[1] - $retour[2]"; ?> La récursivitéLes fonctions récursives sont des fonctions qui s'appellent elles-mêmes.
Ce type de fonction se révéle indispensable pour parcourir une arborescence par exemple.
<? function fonction_recursive($n=0) { $n++; echo "$n <br>"; if($n < 10){ // si n est inférieur à 10 on continue fonction_recursive($n); } } fonction_recursive(); // affiche les nb de 1 à 10 ?> Trucs & astuces pertinents trouvés dans la base de connaissances
Discussions pertinentes trouvées dans le forum
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||