Chapitre 13. Les fonctions

Table des matières
Les fonctions
Les arguments de fonction
Les valeurs de retour
old_function
Fonctions-variable

Les fonctions

Une fonction peut être définie en utilisant la syntaxe suivante :

Exemple 13-1. 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.

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.

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 13-2. 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&eacute; ici.\n";
  }
}

/* Maitenant, nous pouvons appeler foo()
   car $makefoo est maintenant vrai */

if ($makefoo) foo();

function bar() {
{
  echo "J'existe d&egrave;s de d&eacute;but du programme.\n";
}

?>

Exemple 13-3. Fonctions dans une autre fonctions

<?php
function foo() 
{
  function bar() 
  {
    echo "Je n'existe pas tant que foo() n'est pas appel&eacute;.\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();

?>

PHP 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 les deux : 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.