|
Table des matières
Chapitre 17. Les fonctionsTable des matières
Les arguments de fonction Les fonctionsUne fonction peut être définie en utilisant la syntaxe suivante :
<?php function foo($arg_1, $arg_2, /* ..., */ $arg_n) { echo "Exemple de fonction.\n"; return $retval; } ?> Les noms de fonctions suivent les mêmes règles que les autres labels en PHP. Un nom de fonction valide commence par une lettre ou un underscore, suivi par un nombre quelconque de lettres, de nombres ou d’underscores. Ces règles peuvent être représentées par l’expression rationnelle suivante : “[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*”.
En PHP 3, les fonctions doivent être définies avant qu’elles ne soient utilisées. Ce n’est plus le cas depuis PHP 4. SAUF lorsqu’une fonction est définie conditionnellement, comme montré dans les deux exemples suivants. Lorsqu’une fonction est définie de manière conditionnelle, comme dans les exemples ci-dessous, leur définition doit précéder leur utilisation.
<?php $makefoo = true; /* Impossible d'appeler foo() ici, car cette fonction n'existe pas. Mais nous pouvons utiliser bar() */ bar(); if ($makefoo) { function foo() { echo "Je n'existe pas tant que le programme n'est pas passé ici.\n"; } } /* Maitenant, nous pouvons appeler foo() car $makefoo est maintenant vrai */ if ($makefoo) foo(); function bar() { echo "J'existe dès de début du programme.\n"; } ?>
<?php function foo() { function bar() { echo "Je n'existe pas tant que foo() n'est pas appelé.\n"; } } /* Impossible d'appeler bar() ici car il n'existe pas. */ foo(); /* Maintenant, nous pouvons appeler bar(), car l'utilisation de foo() l'a rendu accessible. */ bar(); ?> Toutes les fonctions et classes en PHP ont une portée globale - elles peuvent être appelées à l’extérieur d’une fonction si elles ont été définies à l’intérieur et vice-versa. PHP ne supporte pas le surchargement de fonction, ni la destruction ou la redéfinition de fonctions déjà déclarées.
Il est possible d’appeler des fonctions récursives en PHP. Cependant, les appels de méthodes/fonctions récursives avec 100-200 degrés de récursion peuvent remplir la pile et ainsi, terminer le script courant.
<?php function recursion($a) { if ($a < 20) { echo "$a\n"; recursion($a + 1); } } ?> Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |