Définition

Il existe deux types de fonctions en PHP : les fonctions natives ( phpinfo , echo , ...) et les fonctions définies dans le code (local ou d'une bibliothèque).

Une fonction peut être comparée à un sous programme qu'on appelle depuis le programme principal.

Déclaration

On utilise le mot clé function Les éventuels paramètres (ou arguments) peuvent être précisés entre les parenthèses suivant le nom de la fonction.

function nom_fonction($argument)
{
// instructions
}
				

Valeur par défaut

Il est possible de donner une valeur par défaut à un argument.

function nom_fonction($argument = 'Valeur')
{
// instructions
}
			

Retour

function nom_fonction($argument = 'Valeur')
{
// instructions
return TRUE;
}
			

Mot clé return, la valeur est renvoyée au programme appelant et l'exécution de la fonction est stoppée. Il peut y avoir plusieurs instructions de retour mais l'exécution s'arrête à la première occurence.

Appel

Pour exécuter la fonction, il suffit d'y faire appel en lui passant les paramètres nécessaires.

nom_fonction($argument);

nom_fonction();
Si la fonction a un retour, celui-ci peut être affecté à une variable
$var = nom_fonction();

Portée des variables

La portée (ou visibilité) d'une varaible dépend de l'endroit où elle est définie. Ainsi, les variables d'une fonction ne sont visibles qu'à l'intérieur de cette fonction et pas pour le programme appelant. De même, les variables du programme appelant ne sont pas visible de la fonction.
Il est possible de modifier la portée d'une variable selon les critères suivants :
global
dans et à l'extérieur de la fonction
static
local à la fonction; conserve la valeur à chaque appel
local
fonction en cours

Copie ou référence

Par défaut, les paramètres sont passées par copie (sauf pour les objets). La valeur utilisée par la fonction n'est pas celle donnée en argument mais une copie.
En préfixant par & , on passe une référence. La valeur sera modifiée aussi pour le programme appelant.

Retour de plusieurs valeurs

Il est possible de retourner plusieurs valeurs en utilisant un tableau. Le mot clé list sera utilisé pour affecter les valeurs de retours à plusieurs variables.
function nom_fonction() {
  // instructions
  return array('valeur1', 'valeur2', 'valeur3');
}

list($nom, $prenom, $telephone) = nom_fontion();
			

Nombre de paramètres

Des instructions prédéfinies permettent d'intéragir avec la liste des arguments :
func_num_args
Nombre d'arguments
func_get_args
Tableau d'arguments
func_get_arg
Obtenir un élément dans le tableau

Exercices