Les fonctions
En PHP, il faut distinguer deux niveaux de fonctions : les fonctions propres au langage, et les fonctions utilisateur.
Les premi�res sont int�gr�es au langage et aux diff�rentes librairies que l'on peut ajouter � PHP. Les secondes sont d�finies par les utilisateurs au sein d'un script, d'une librairie "maison" ou d'une classe dans le cadre d'un d�veloppement orient� objet (dans ce cas ce sont des m�thodes)...
Fonctions int�gr�es
L�, il y en a pour tout les go�ts ! Par contre, je vous laisserait plut�t consulter la documentation officielle PHP pour plus d'infos, car il y a vraiment beaucoup (
trop) de fonctions, je ne peut pas parler de toutes ici ! Mais je suis pas comme �a ! En voici quelques unes !
Fonctions texte
<?php
$chaine = chop( $chaine );
echo strtolower( $chaine ) . "<br />";
$partie = substr( $chaine, 0, 50 );
echo htmlentities( $partie );
?>
Documentation officielle PHP sur les fonctions de traitement des cha�nes de caract�res
Documentation officielle PHP sur les fonctions de traitement des cha�nes de caract�res multi-octales (Unicode, UTF-8, ...)
Fonctions math�matiques et calcul :
<?php
$resultat = ceil( 100/7 );
?>
Documentation officielle PHP sur les fonctions math�matiques
Fonctions de date :
<?php
echo date( "d/m/Y" );
?>
Documentation officielle PHP sur les fonctions de date/heure
Fonctions utilisateurs
Afin de vous �viter de copier-coller votre code d'une section � une autre de votre script, le plus inter�ssant est de rendre certaines portions de codes r�utilisables � l'infini. C'est � cela que servent les fonctions.
Syntaxe :
<?php
function nom_de_la_fonction([ $parametre [, $parametreX ] ])
{
}
$variable = nom_de_la_fonction();
nom_de_la_fonction();
?>
L�, c'est vraiment tr�s simple, tr�s sch�matique, et m�me pas tr�s �vident ! Donc, je vais passer directement aux exemples comment�s.
Tout d'abord, votre fonction doit avoir un nom, qui vous servira � l'appeller quand on aura besoin d'elle. Ne prenez surtout pas de nom qui soit des mots r�serv�s, pour cela utilisez par exemple des noms fran�ais, � quelques exceptions pr�s, vous n'aurez pas de tracas. Par contre, le nom doit �tre unique, vous ne pouvez pas avoir deux fonctions avec le m�me nom (
voir plus bas pour le probl�me de r�p�tition...).
Ensuite, vous pouvez passer des param�tres, obligatoires ou optionnels, � votre fonction.
Et enfin, elle peut imprimer directement (
avec les fonctions internes echo ou print) le r�sultat, ou renvoyer ce r�sultat avec
return de fa�on � le stocker dans une variable...
Exemples :
Code |
Résultat |
<?php
function ma_fonction()
{
echo "ce texte est imprim� par la fonction \"ma_fonction\".<br />";
}
ma_fonction();
?>
|
ce texte est imprim� par la fonction "ma_fonction".
|
Code |
Résultat |
<?php
function dire_bonjour( $a_qui )
{
echo "Bonjour $a_qui !<br />";
}
dire_bonjour( "Beno�t" );
$personne = "Marc";
dire_bonjour( $personne );
?>
|
Bonjour Beno�t ! Bonjour Marc !
|
Code |
Résultat |
<?php
function dire_bonjour2( $civil, $prenom, $nom )
{
echo "Bonjour $civil $prenom " . strtoupper( $nom ) . ".<br />";
}
dire_bonjour2( "M.", $personne, "Lathuille" );
?>
|
Bonjour M. Marc LATHUILLE.
|
Code |
Résultat |
<?php
function addition( $a, $b )
{
$c = $a + $b;
return $c;
}
$resultat = addition( 10, 25 );
echo $resultat . "<br />";
echo addition( 7, -12 ) . "<br />";
?>
|
35 -5
|
Code |
Résultat |
<?php
function fonction_x( $obligatoire, $facultative = "1" )
{
$res = $obligatoire * $facultative;
return $res;
}
$resultat_1 = fonction_x( 16 );
echo $resultat_1 . "<br />";
$resultat_2 = fonction_x( 16, 3 );
echo $resultat_2 . "<br />";
?>
|
16 48
|
Premi�re chose � propos des param�tres : l'ordre d'appel doit respecter l'ordre de d�finition, c'est tr�s important !
Dans le cas des param�tres 'obligatoires' et 'facultatifs', il est imp�ratif de mettre en premier dans la d�claration les param�tres obligatoires, et seulement ensuite les facultatifs avec leurs valeurs par d�faut. En effet, comme il y a une valeur par d�faut, on n'est pas oblig� de remettre cette valeur dans l'appel de la fonction.
Donc, si vous avez une fonction dont les param�tres sont respectivement
fonction( obligatoire, facultatif=
"valeur", obligatoire ), l'appel devra prendre les 3, m�me s'il y a des valeurs par d�faut, sinon vous aurez une erreur "l'argument n�# de la fonction est manquant". Si la d�claration est dans l'ordre
fonction( obligatoire, obligatoire, facultatif=
"valeur" ), vous pouvez en mettre aussi bien 2 que 3...
Une autre chose ennuyeuse qui peut se produire avec les fonctions : que vous red�clariez une fonction existante, cela affiche un joli message avec une erreur blocquante, qui emp�che la suite du script et les autres portions de code de s'ex�cuter.
Il y a alors deux solutions : soit vous renommez votre fonction utilisateur, soit, si la fonction est pr�sente au cas o� une extension PHP n'est pas disponible (
fonction de substitution, c'est souvent le cas lorsque des fonctions ont �t� ajout�es uniquement en PHP 5, des contributeurs �crivent alors des fonctions �quivalentes en PHP 4, et leur donne le m�me nom - il faut donc pr�voir le cas o� la version de PHP soit mise � jour ou si le site migre vers un autre h�bergeur en version plus r�cente de PHP), la « prot�ger » :
<?php
if( !function_exists( "nom_de_le_fonction" ) )
{
function nom_de_le_fonction( $param, $var = "init" )
{
}
}
?>