| Une
fonction peut être définie
en utilisant la syntaxe suivante :
Exemple - Définition
d'une fonction
<?php
function foo($arg_1, $arg_2, /* ...,
*/ $arg_n)
{
echo "Exemple de fonction.\n";
return $retval;
}
?>
Tout code PHP, correct syntaxiquement,
peut apparaître dans une fonction
et dans une définition de classe.
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.
Exemple - Fonctions conditionnelles
<?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";
}
?>
Exemple - Fonctions dans une
autre fonction
<?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 vis-versa.
PHP ne supporte pas le surchargement
de fonction, ni la destruction ou
la redéfinition de fonctions
déjà déclarées.
Note : Les noms de fonctions sont
insensibles à la casse, et
il est généralement
admis que les fonctions doivent être
appelée avec le nom utilisé
dans leur déclaration, y compris
la casse.
PHP 3 ne supporte pas un nombre variable
d'arguments (voir valeurs par défaut
d'arguments pour plus d'informations).
Les deux sont supportés, depuis
PHP 4 : voir liste variable d'arguments
de fonction et les fonctions de références
que sont func_num_args(), func_get_arg(),
et func_get_args() pour plus d'informations.
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.
Exemple - Fonctions récursives
<?php
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
?>
Copyright © 2001-2006 The
PHP Group. All rights reserved.
|