Les fonctions en PHP permettent de regrouper du code en vue de le réutiliser plusieurs fois dans un programme. Elles peuvent être définies pour recevoir des entrées sous la forme de paramètres, et produire une sortie en retournant une valeur. Grâce à cela, le code devient plus structuré et plus facile à comprendre pour les développeurs.
Comment ça marche ?
Pour créer et utiliser une fonction, vous devrez commencer par la définir avec la syntaxe suivante :
<?php
function nom_de_la_fonction($paramètre1, $paramètre2, ...) {
// Code à exécuter lorsque la fonction est appelée
}
?>
Une fois votre fonction définie, il vous suffira de l’appeler en lui transmettant, si besoin, les paramètres attendus de la façon suivante :
<?php
nom_de_la_fonction($arg1, $arg2, ...);
?>
Voici un exemple simple de fonction en PHP qui calcule la somme de deux nombres :
<?php
function addition($a, $b) {
return $a + $b;
}
$resultat = addition(3, 5);
echo "Le résultat est : $resultat";
?>
Cette fonction prend en entrée deux nombres ($a et $b) et les additionne, le résultat de l’addition est retourné par la fonction. Lorsque la fonction est appelée, la valeur retournée est stockée dans la variable $resultat, qui est ensuite affichée à l’écran.
Les fonctions prédéfinies
Il existe un certain nombre de fonctions prédéfinies en PHP. Il s’agit de fonctions de bases fréquemment utilisées dans le codage PHP.
Nous connaissons déjà count() et sizeof() qui permettent de compter le nombre d’éléments contenus dans un tableau, mais également echo() que nous utilisons depuis le début de notre initiation au PHP pour afficher une valeur dans nos page.
Découvrons quelques autres fonctions auxquelles nous pouvons avoir recours.
strlen()
Retourne la longueur d’une chaîne de caractères.
<?php
$chaine = "Bonjour";
$longueur = strlen($chaine);
echo "La chaîne '$chaine' a une longueur de $longueur caractères.";
?>
substr()
Retourne une partie d’une chaîne de caractères.
<?php
$chaine = "Bonjour tout le monde";
$sous_chaine = substr($chaine, 0, 5);
echo "La sous-chaîne est : '$sous_chaine'.";
?>
trim()
supprime les espaces en début et fin de chaîne
<?php
$chaine = " Bonjour ";
$chaine = trim($chaine);
echo "La chaîne sans les espaces est : '$chaine'.";
?>
explode()
Divise une chaîne de caractères en un tableau en utilisant un séparateur.
<?php
$chaine = "nom,prenom,age,ville";
$tableau = explode(",", $chaine);
print_r($tableau);
?>
implode()
Joint des éléments d’un tableau en une chaîne de caractères
<?php
$tableau = array("nom", "prenom", "age", "ville");
$chaine = implode(",", $tableau);
echo "La chaîne est : '$chaine'.";
?>
date()
Retourne la date et l’heure formatées
<?php
$format = "d-m-Y H:i:s";
$date = date($format);
echo "La date est : $date";
?>
mktime()
mktime()Retourne l’horodatage d’une date donnée.
<?php
$format = "d-m-Y H:i:s";
$date = date($format);
echo "La date est : $date";
?>
Cette liste est évidemment non exhaustive, nous la complèterons au fur et à mesure des articles. Mais il existe encore de nombreuses fonctions, rendez-vous sur la documentation du PHP pour en découvrir d’autres.
Création d’une fonction de formatage de date
Passons maintenant à un exercice pratique en récupérant la date du jour puis en la formatant sous la forme d’affichage de date française (ex : 12 janvier 2022).
Commençons en découvrant la classe DateTime(). En PHP il s’agit d’une classe pouvant être utilisée pour manipuler et formater des dates et des heures. Elle est plus avancée et plus flexible que la fonction date() pour la même finalité, et elle offre de nombreuses fonctionnalités supplémentaires.
Voici comment vous pourriez utiliser la classe DateTime pour créer une instance qui représente la date et l’heure actuelles :
<?php
$now = new DateTime();
echo 'Cette page a été générée le '. $now->format('d/m/Y à H:i:s');
?>
Dans cet exemple, nous créons une nouvelle variable de la classe DateTime en utilisant le constructeur par défaut, ce qui représente la date et l’heure actuelles sous la forme : 2022-01-01 12:00:00.
Nous allons maintenant créer une fonction PHP permettant de convertir cette date dans le format voulu.
<?php
function formatDate($date_du_jour) {
$month = array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre");
$day = $date_du_jour->format("d");
$monthName = $month[$date_du_jour->format("m") - 1];
$year = $date_du_jour->format("Y");
return "$day $monthName $year";
}
?>
Cette fonction prend en entrée une instance de la classe $date_du_jour et retourne une chaîne de caractères formatée sous la forme « 12 janvier 2022 ». La fonction utilise un tableau $month pour stocker les noms des mois en français, et utilise les méthodes format() pour extraire le jour, le mois et l’année de l’objet . Enfin, la fonction retourne la chaîne formatée en concaténant les différentes parties.$date_du_jour
Une fois la date du jour récupérée à l’aide la fonction date() comme expliqué précédemment, nous allons pouvoir l’ui’envoyer pour traitement dans notre fonction formatDate()
<?php
$now = new DateTime();
echo '<p>'.formatDate($now).'</p>';
?>
Le résultat de cet exemple serait quelque chose comme :
31 janvier 2022