PHP Fonctions


Fonctions intégrées de PHP

PHP dispose de plus de 1000 fonctions intégrées qui peuvent être appelées directement depuis un script pour effectuer une tâche spécifique. Veuillez consulter notre référence PHP pour un aperçu complet.


Fonctions définies par l'utilisateur en PHP

En plus des fonctions intégrées de PHP, il est possible de créer vos propres fonctions.

  • Une fonction est un bloc d'instructions qui peut être utilisé plusieurs fois dans un programme.
  • Une fonction n'est pas exécutée automatiquement lors du chargement d'une page.
  • Une fonction est exécutée uniquement lorsqu'elle est appelée.

Créer une fonction

Une déclaration de fonction définie par l'utilisateur commence par le mot-clé function , suivi du nom de la fonction.

L'accolade ouvrante { indique le début du code de la fonction, et l'accolade fermante } indique la fin de la fonction.

Remarque : Un nom de fonction n'est pas sensible à la casse et doit commencer par une lettre ou un underscore.

Syntaxe

function functionName($parameter1, $parameter2) { // code à exécuter return $value; // optionnel }

L'exemple suivant crée une fonction nommée myMessage() :

Exemple

function myMessage() { echo "Bonjour le monde !"; }

Astuce : Donnez à la fonction un nom qui reflète ce qu'elle fait !


Appeler une fonction

Pour appeler une fonction, il suffit d'écrire son nom suivi de parenthèses () .

La fonction ci-dessous affiche "Bonjour le monde !" :

Exemple

Appeler la fonction myMessage()

function myMessage() { echo "Bonjour le monde !"; } myMessage();
Essayez-le vous-même »


Paramètres de fonction PHP

Des informations peuvent être passées aux fonctions via des paramètres. Un paramètre est semblable à une variable.

Les paramètres sont spécifiés après le nom de la fonction, à l'intérieur des parenthèses. Vous pouvez ajouter autant de paramètres que vous le souhaitez, il suffit de les séparer par une virgule.

L'exemple suivant a une fonction avec un paramètre ($fname) . Lorsque la fonction familyName() est appelée, nous passons également un nom, par exemple ("Jani") , et ce nom est utilisé à l'intérieur de la fonction, qui affiche plusieurs prénoms différents, mais un même nom de famille :

Exemple

function familyName($fname) { echo "$fname Refsnes.<br>"; } familyName("Jani"); familyName("Hege"); familyName("Stale"); familyName("Kai Jim"); familyName("Borge");
Essayez-le vous-même »

L'exemple suivant a une fonction avec deux paramètres ($fname, $year) :

Exemple

function familyName($fname, $year) { echo "$fname Refsnes. Né en $year.<br>"; } familyName("Hege", "1975"); familyName("Stale", "1978"); familyName("Kai Jim", "1983");
Essayez-le vous-même »

Valeur par défaut des paramètres PHP

L'exemple suivant montre comment utiliser un paramètre par défaut.

Si nous appelons la fonction setHeight() sans paramètre, elle prendra la valeur par défaut :

Exemple

function setHeight($height = 50) { echo "La hauteur est : $height <br>"; } setHeight(350); setHeight(); // prendra la valeur par défaut de 50
Essayez-le vous-même »

Fonctions PHP - Retourner des valeurs

L'instruction return termine immédiatement l'exécution d'une fonction et renvoie une valeur à la ligne de code qui l'a appelée :

Exemple

function sum($x, $y) { $z = $x + $y; return $z; } echo "5 + 10 = " . sum(5, 10) . "<br>"; echo "7 + 13 = " . sum(7, 13) . "<br>"; echo "2 + 4 = " . sum(2, 4);
Essayez-le vous-même »

Passer des arguments par référence

Les arguments sont généralement passés par valeur, ce qui signifie qu'une copie de la valeur est utilisée dans la fonction et que la variable qui a été passée dans la fonction ne peut pas être modifiée.

Lorsqu'un argument de fonction est passé par référence, les modifications apportées à l'argument changent également la variable qui a été passée. Pour transformer un argument de fonction en référence, utilisez l'opérateur & devant l'argument/paramètre :

Exemple

Utilisez un argument passé par référence pour mettre à jour une variable :

function add_five(&$value) { $value += 5; } $num = 2; add_five($num); echo $num;
Essayez-le vous-même »

Nombre variable de paramètres

En utilisant l'opérateur ... devant le paramètre de la fonction, celle-ci accepte un nombre inconnu de paramètres. Cela s'appelle aussi une fonction variadique.

L'argument de la fonction variadique devient un tableau.

Exemple

Une fonction qui ne sait pas combien d'arguments elle recevra :

function sumMyNumbers(...$x) { $n = 0; $len = count($x); for($i = 0; $i < $len; $i++) { $n += $x[$i]; } return $n; } $a = sumMyNumbers(5, 2, 6, 2, 7, 7); echo $a; 
Essayez-le vous-même »

Vous ne pouvez avoir qu'un seul argument de longueur variable, et il doit être le dernier argument.

Exemple

L'argument variadique doit être le dernier argument :

function myFamily($lastname, ...$firstname) { $txt = ""; $len = count($firstname); for($i = 0; $i < $len; $i++) { $txt = $txt."Salut, $firstname[$i] $lastname.<br>"; } return $txt; } $a = myFamily("Doe", "Jane", "John", "Joey"); echo $a; 
Essayez-le vous-même »

Si l'argument variadique n'est pas le dernier argument, vous obtiendrez une erreur.

Exemple

Avoir l'opérateur ... en premier des deux arguments générera une erreur :

function myFamily(...$firstname, $lastname) { $txt = ""; $len = count($firstname); for($i = 0; $i < $len; $i++) { $txt = $txt."Salut, $firstname[$i] $lastname.<br>"; } return $txt; } $a = myFamily("Doe", "Jane", "John", "Joey"); echo $a; 
Essayez-le vous-même »

PHP est un langage faiblement typé

Dans les exemples ci-dessus, remarquez que nous n'avons pas eu à indiquer à PHP quel type de données la variable est.

PHP associe automatiquement un type de données à la variable, en fonction de sa valeur. Étant donné que les types de données ne sont pas définis, vous pouvez faire des choses comme ajouter une chaîne à un entier sans provoquer d'erreur.

Depuis PHP 7, des déclarations de type ont été ajoutées. Cela nous donne la possibilité de spécifier le type de données attendu lors de la déclaration d'une fonction, et en ajoutant la déclaration strict , cela générera une "Erreur fatale" si le type de données ne correspond pas.

Pour spécifier le mode strict , nous devons définir declare(strict_types=1); . Cela doit être sur la toute première ligne du fichier PHP.

Dans l'exemple suivant, nous envoyons à la fois un nombre et une chaîne à la fonction, mais ici nous avons ajouté la déclaration strict :

Exemple

<?php declare(strict_types=1); // exigence stricte function addNumbers(int $a, int $b) { return $a + $b; } echo addNumbers(5, "5 jours"); // puisque "5 jours" n'est pas un entier, une erreur sera générée ?>
Essayez-le vous-même »

La déclaration strict force les choses à être utilisées de la manière prévue.


Déclarations de type de retour PHP

PHP prend également en charge les déclarations de type pour l'instruction return .

Pour déclarer un type de données pour le retour de la fonction, ajoutez un deux-points ( : ) et le type de données juste avant l'accolade ouvrante ( { ) lors de la déclaration de la fonction.

Dans l'exemple suivant, nous spécifions le type de retour (float) pour la fonction :

Exemple

<?php declare(strict_types=1); // exigence stricte function addNumbers(float $a, float $b) : float { return $a + $b; } echo addNumbers(1.2, 5.2); ?>
Essayez-le vous-même »

Vous pouvez également spécifier un type de retour différent de celui des types d'arguments, mais assurez-vous que le retour est du bon type :

Exemple

<?php declare(strict_types=1); // exigence stricte function addNumbers(float $a, float $b) : int { return (int)($a + $b); } echo addNumbers(1.2, 5.2);
Essayez-le vous-même »