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);
Si la fonction a un retour, celui-ci peut être affecté à une
variable
nom_fonction();
$var = nom_fonction();
Portée des variables
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
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
-
func_num_args
- Nombre d'arguments
-
func_get_args
- Tableau d'arguments
-
func_get_arg
- Obtenir un élément dans le tableau