Vous êtes ici :
Accueil Cours Développement web Création d'un site web en PHP et MySQL Les fonctions

Création d'un site web en PHP et MySQL : Les fonctions

Syntaxe et portée


Voici la syntaxe d'une fonction:

function fonc($arg1, $arg2, $arg3, ..., $argn) {
bloc de commandes
return $valeur
}

 

Une   fonction   n'a   pas   besoin   d'être   déclarée   avant   d'être   utilisée   (sauf   si   vous   voulez   rester compatible avec PHP 3), du moment qu'elle apparaît dans le script.
Il y a cependant deux exceptions  :  si   la  fonction  est   conditionnelle,  c'est   à  dire déclarée  dans un  if, ou   si   la   fonction   est   déclarée   dans   une   autre   fonction.   Dans   le   premier   cas   elle   sera   inconnue   du reste du code tant que la condition du if n'est  pas vraie.  Dans le second cas elle ne sera connue que
quand la première fonction sera exécutée. Voici un exemple tiré du manuel.

 

Pour lepremier cas:

<?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é ici.n";
}
}
/* Maitenant, nous pouvons appeler foo() car $makefoo est maintenant vrai */
if ($makefoo) foo();
function bar() {
echo "J'existe dès le début du programme.n";
}
?>

 

Pour lesecond cas :

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

?>

 

 

Arguments


On  peut   passer   autant  d'arguments   que  souhaité  à  une  fonction  PHP,   de  tous  types.   Les  arguments sont séparés par des virgules. Par défaut ils sont passés par copie.

 

<?php

function affiche($msg) {
echo $msg;
}

?>

 

Il est possible de passer des arguments par référence, on peut donc en changer la valeur à l'intérieur de  la fonction. Pour cela on  rajoute un « & » devant  l'argument. On peut passer ponctuellement une variable par référence en plaçant un « & » devant son nom lors de l'appel de la fonction.

 

<?php

function modif(&$msg) {
$msg="coucou";
}
$msg="salut";
modif($msg);
echo $msg; // coucou

?>

 

On   peut   aussi   définir   des   valeurs   par   défaut   mais   ATTENTION,   dans   la   liste   des   paramètres   les valeurs par défaut doivent être en dernier.

 

<?php
function affiche($nom, $prenom="toto") {
echo "$nom $prenom";
}

?>

 

Enfin   on   peut   utiliser   un   nombre   variable   d'arguments   avec   les   fonctions   func_num_args,func_get_arg et func_get_args.

<?php
function foo() {
$numargs = func_num_args();
echo "Nombre d'arguments: $numargsn";
}
foo (1, 2, 3); // affiche 'Nombre d'arguments: 3'

?>

 

Valeur de retour


On retourne une valeur avec l'instruction « return ».  On peut retourner tout type de valeurs, mais pas plusieurs   en   même   temps.   Cependant   rien   n'empêche   dans   ce   cas   de   retourner   un   tableau.   Une fonction peut aussi retourner une référence. Dans ce cas elle doit être déclarée avec un « & » devant son nom.

 

<?php

function carre ($num) {
return $num * $num;
}
echo carre (4); // affiche '16'

?>

 

Fonctions internes


En  plus  des fonctions  définies par  l'utilisateur PHP propose un grand  nombre  de fonctions  internes couvrant une multitude de domaines. Pour accéder à ces fonctions il faut simplement les appeler par leur   nom  et   que   le  module   correspondant  soit   compilé   avec  PHP.   Nous  verrons   dans  les   chapitres suivants comment en utiliser certaines.

 




Vous êtes ici :
Accueil Cours Développement web Création d'un site web en PHP et MySQL Les fonctions