PHP possède de nombreuses fonctions intégrées permettant d'effectuer des traitements variés. Bien sûr, nous pouvons aussi définir nos propres fonctions quand nous devons utiliser des séries répétitives d'instructions.
Nous allons voir quels sont les mécanismes généraux d'utilisation des fonctions dans PHP.
Pour déclarer une fonction, on utilise le mot-clé function, suivi du nom de la fonction et d'une paire de parenthèses qui entourent les paramètres éventuels.
Le nom d'une fonction doit commencer par une lettre ou le caractère _ (underscore), suivi d'autant de lettres, de chiffres ou de _ que l'on veut.
Le nom des fonctions est insensible aux minuscules et
majuscules.
Ainsi unNom, unnom, UNNOM et
uNnOm feront référence à la même
fonction.
Les parenthèses après le nom de la fonction sont obligatoires, même si la fonction n'a pas de paramètres. Si la fonctions accepte des paramètres, leur nom est séparé par une virgule.
Les instructions constituant le bloc de code de la fonction doivent être entourées d'accolades { et }, même si la fonction n'a qu'une seule instruction.
Les fonctions peuvent être déclarées n'importe où dans le script, avant ou après qu'elles soient invoquées.
Comme PHP est un langage avec un typage dynamique, il n'y a pas de déclaration de type pour une fonction.
Le code suivant représente une fonction appelée afficher qui envoie au navigateur (et donc affiche) un titre et sa couleur de fond, et un texte. Les 3 éléments sont les paramètres de la fonction : $texte contient le texte qui sera affiché, $titre contient le titre qui sera affiché, et $coul est la couleur de fond du titre.
function afficher($texte, $titre, $coul) {
echo '<h3 style="background:', $coul, '">';
echo $titre;
echo '</h3>';
echo '<p>', $texte, '</p>';
}
L'exemple ci-dessous montre l'utilisation de la fonction.
Les variables définies à l'intérieur d'une fonction ne sont accessibles qu'à l'intérieur de cette fonction.
L'exemple suivant essaye d'utiliser la variable $prenom définie dans une fonction à l'extérieur de la fonction. L'exemple provoque l'affichage d'une erreur "Notice", non bloquante.
L'erreur déclenchée par une variable qui n'existe pas n'est pas une erreur bloquante dans PHP. Il faut donc être attentif à ce type d'erreurs qui peuvent entraîner des résultats graves si elles ne sont pas évitées.
Les variables définies à l'extérieur d'une fonction ne sont pas accessibles à l'intérieur de la fonction.
L'exemple suivant essaye d'utiliser dans une fonction la variable $nom qui est définie au niveau script (à l'extérieur de la fonction. L'exemple provoque l'affichage d'une erreur "Notice", non bloquante.
En utilisant le mot-clé global, les variables définies à l'extérieur d'une fonction seront accessibles à l'intérieur de la fonction.
La variable $prenom définie dans la fonction n'est jamais accessible en dehors de la fonction.