Les fonctions
Qu'est-ce qu'une fonction?
Une fonction est un "sous-programme" qui permet d'effectuer une série d'instructions. Utiliser des fonctions simplifie le script et réduit donc sa taille.
Comme en Javascript, une fonction est déclarée par le mot-clé function. Voici
la syntaxe d'une fonction:
function nom_de_la_fonction (arguments){
instructions à exécuter
}
: les noms de fonctions subissent les mêmes contraintes que les noms de variables.
Comme en Javascript, pour appeler une fonction, on indique son nom suivi des parenthèses.
return;
Le mot-clé return permet de faire renvoyer une valeur par la fonction ce qui veut dire que, lorsque la fonction rencontre ce mot-clé, elle renvoie une valeur au programme qui l'a appelée. Voici un exemple:
<?php
function ecrire_mots($1,$mots='Vive'){
if(empty($1)){
return false;
}
else{
echo"$mots $1";
return true;
}
}
?>
Cette fonction renverra false si $1 est vide et true si $1 est rempli. Cette fonction va maintenant être appelée
dans <body>:
<?php
ecrire_mots("theprogrammeur");
ecrire_mots("Bienvenue sur le site","theprogrammeur");
?>
Voici le résultat:
Les variables dans les fonctions:
Rappel:
Il y a deux sortes de variables:
les variables globales
les variables locales
Une variable est locale par défaut ce qui veut dire qu'elle ne pourra être utilisée qu'à l'intérieur de la fonction dans laquelle elle a été définie. Si la variable est globale, elle pourra alors être utilisée dans tout le script.
Si cette notion de fonction vous a paru abstraite et que vous n'avez pas bien compris à quoi elles peuvent bien
servir. Voici un autre exemple, beaucoup plus utile et plus simple!
Vous en avez sans doute marre de toujours devoir taper le head de vos pages qui ne change pas beaucoup. Vous pouvez vous faciliter la vie grâce à une fonction.
Comment faire ?
C'est simple, plutôt que de taper tout le head vous mettez ceci à la place:
include('fonctions.php');//on inclut le fichier qui contient les fonctions
en_tete() ;//on appelle la fonction
Dans le fichier "fonctions.php", vous navez plus qu'à écrire votre fonction qui va écrire le header.
Mais il y a des choses qui doivent changer dans mon header !
En effet, vous devez changer certaines choses comme le titre de la page ou l'adresse de la feuille de style.
Pour modifier ces détails, il suffit de les passer en argument de la fonction.
Exemple:
en_tete('Ma page', 'CSS/stylesheet.css');
Vous avez donné deux informations à la fonction en_tete. Il ne vous reste plus qu'à la créer. Rien de bien
difficile, il suffit d'écrire le head. Allez-y!
...
Un problème??? Petite aide: la fonction ne doit rien renvoyer; ce n'est donc pas la peine de mettre des return.
....
Vous avez fin ? On corrige ! Voici le code correct de la fonction en_tete:
en_tete($titre, $css){
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<head><title>'.$titre.'<title>
<link rel="stylesheet" type="text/css" href=".'$css.'" />
</head><body>';
}
Et voilà, votre fonction est déjà finie. Avouez que ce n'était pas bien dur ! Si vous devez faire passer
plus d'arguments, il suffit de les rajouter dans l'en-tête de la fonction. Vous pouvez aussi faire un
fonction bas_page qui va écrire la fin de la page pour vous simplifier la vie!