English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous apprendrez à créer vos propres fonctions personnalisées en PHP.
Les fonctions sont des blocs de codes indépendants pour exécuter des tâches spécifiques.
PHP dispose d'une grande collection de fonctions intégrées que vous pouvez appeler directement dans votre script PHP pour exécuter des tâches spécifiques, telles que : gettype(),print_r(),var_dump, etc.
Veuillez consulter la partie de référence PHP pour obtenir une liste complète des fonctions intégrées PHP utiles.
En plus des fonctions intégrées, PHP vous permet de définir vos propres fonctions. C'est une méthode pour créer des ensembles de codes réutilisables pour exécuter des tâches spécifiques, et peut être sauvegardé et maintenu séparément du programme principal. Voici quelques avantages de l'utilisation de fonctions :
Les fonctions réduisent la répétition du code dans le programme - Les fonctions vous permettent deExtraire des blocs de code courants dans un seul composant. Vous pouvez maintenant appeler cette fonction à tout moment dans le script pour exécuter la même tâche sans avoir à copier et coller le même bloc de code à plusieurs reprises.
Les fonctions facilitent la maintenance du code - Comme une fonction peut être créée plusieurs fois, toute modification apportée à l'intérieur de la fonction sera automatiquement appliquée à toutes les positions sans nécessiter de modifier plusieurs fichiers.
Les fonctions permettent de supprimer les erreurs plus facilement - Lorsque vous divisez un programme en fonctions, si une erreur se produit, vous savez exactement quelle fonction a provoqué l'erreur et où vous pouvez la trouver. Par conséquent, la correction des erreurs devient beaucoup plus facile.
Les fonctions peuvent être réutilisées dans d'autres applications - Comme les fonctions sont séparées du reste du script, vous pouvez facilement réutiliser la même fonction dans d'autres applications en incluant le fichier php contenant ces fonctions.
La section suivante vous montrera comment définir facilement vos propres fonctions en PHP.
La syntaxe de base pour créer une fonction personnalisée peut être donnée :
function functionName() { //Le code à exécuter }
La déclaration d'une fonction utilisateur définie commence par le mot-clé function, suivi du nom de la fonction à créer, puis des parenthèses, c'est-à-dire () et enfin, le code de la fonction est placé entre les accolades { }.
C'est un exemple simple de fonction utilisateur définie, qui affiche la date d'aujourd'hui :
<?php //Définir une fonction function whatIsToday() { echo "Aujourd'hui est " . date('l', mktime()); } //Appeler une fonction whatIsToday(); ?>Test and see‹/›
Note:Le nom de la fonction doit commencer par une lettre ou un caractère de soulignement, et non par un chiffre, et peut être suivi de plus de lettres, de chiffres ou de caractères de soulignement. Le nom de la fonction n'est pas sensible à la casse.
Vous pouvez spécifier les paramètres lorsque vous définissez une fonction pour accepter des valeurs d'entrée au moment de l'exécution. Le fonctionnement des paramètres est similaire aux variables de substitution dans une fonction ; ils sont remplacés par les valeurs fournies à la fonction au moment de l'appel (dénommées paramètres).
function myFunc($oneParameter, $anotherParameter) { //Le code à exécuter }
Vous pouvez définir autant de paramètres que nécessaire. Cependant, pour chaque paramètre spécifié, vous devez transmettre le paramètre correspondant à la fonction lors de l'appel de la fonction.
La fonction getSum() dans les exemples suivants prend deux valeurs entières en paramètres, il suffit de les ajouter ensemble, puis d'afficher le résultat dans le navigateur.
<?php //Définir une fonction function getSum($num1, $num2{ $sum = $num1 + $num2; echo "deux nombres $num1et $num2le somme est : $sum"; } //Appeler une fonction getSum(10, 20); ?>Test and see‹/›
La sortie du code suivant sera :
deux nombres10et2La somme de 0 est : 30
Astuce :Les paramètres sont les valeurs que vous transmettez à une fonction, et les paramètres sont les variables qui reçoivent les paramètres dans la fonction. Cependant, dans l'utilisation habituelle, ces termes sont interchangeables, c'est-à-dire que les paramètres sont les arguments.
Vous pouvez également créer des fonctions avec des paramètres optionnels - Il suffit d'insérer le nom du paramètre, suivi d'un signe égal (=) et de la valeur par défaut, comme indiqué ci-dessous.
<?php //Définir une fonction function customFont($font, $size=1.5{ echo "<p style=\"font-family: $font; font-size: {$size}em;">Hello, world!/p>"; } //Appeler une fonction customFont("Arial", 2); customFont("Times", 3); customFont("Courier"); ?>Test and see‹/›
Comme vous pouvez le voir, le troisième appel à customFont () ne comprend pas le second paramètre. Cela entraînera que le moteur PHP utilise la valeur par défaut du paramètre $size, à savoir1.5。
Une fonction peut retourner une valeur à l'aide de l'instruction return au script qui appelle la fonction. Cette valeur peut être de n'importe quel type, y compris les tableaux et les objets.
<?php //Définir une fonction function getSum($num1, $num2{ $total = $num1 + $num2; return $total; } //Afficher la valeur retournée echo getSum(5, 10); // Sortie : 15 ?>Test and see‹/›
Une fonction ne peut pas retourner plusieurs valeurs. Cependant, vous pouvez obtenir un résultat similaire en retournant un tableau, comme dans l'exemple suivant.
<?php //Définir une fonction function divideNumbers($dividend, $divisor){ $quotient = $dividend / $divisor; $array = array($dividend, $divisor, $quotient); return $array; } //Affecter une variable en tant que tableau list($dividend, $divisor, $quotient) = divideNumbers(10, 2); echo $dividend; // Sortie : 10 echo $divisor; // Sortie : 2 echo $quotient; // Sortie : 5 ?>Test and see‹/›
En PHP, il existe deux méthodes pour transmettre des paramètres à une fonction : la transmission par valeur et la transmission par référence. Par défaut, les paramètres des fonctions sont transmis par valeur, donc si la valeur du paramètre à l'intérieur de la fonction est modifiée, cela n'affectera pas l'extérieur de la fonction. Cependant, pour permettre à la fonction de modifier ses paramètres, ils doivent être transmis par référence.
La méthode de passage de paramètres par référence consiste à ajouter un et (#) devant le nom du paramètre dans la définition de la fonction, comme dans l'exemple suivant :
<?php /* Définir une fonction qui multiplie un nombre Et retourner une nouvelle valeur */ function selfMultiply(&$number){ $number *= $number; return $number; } $mynum = 5; echo $mynum; // Sortie : 5 selfMultiply($mynum); echo $mynum; // Sortie : 25 ?>Test and see‹/›
Vous pouvez déclarer une variable à n'importe quel endroit dans un script PHP. Cependant, l'emplacement de la déclaration détermine la portée visible de la variable dans le programme PHP, c'est-à-dire où la variable peut être utilisée ou accédée. Cette accessibilité s'appellePortée des variables。
Par défaut, les variables déclarées à l'intérieur d'une fonction sont des variables locales et ne peuvent pas être accédées ou manipulées à partir de l'extérieur de la fonction, comme dans l'exemple suivant :
<?php //Définir une fonction function test(){ $greet = "Hello World!"; echo $greet; } test(); // Sortie : Hello World! echo $greet; //Générer une erreur de variable non définie ?>Test and see‹/›
De même, si vous essayez d'accéder ou d'importer une variable externe à l'intérieur de la fonction, vous obtiendrez une erreur de variable non définie, comme dans l'exemple suivant :
<?php $greet = "Hello World!"; //Définir une fonction function test(){ echo $greet; } test(); //Générer une erreur de variable non définie echo $greet; // Sortie : Hello World! ?>Test and see‹/›
Comme vous pouvez le voir dans l'exemple ci-dessus, il est impossible d'accéder à une variable déclarée à l'intérieur d'une fonction depuis l'extérieur, et inversement, il est impossible d'accéder à une variable déclarée à l'extérieur à l'intérieur de la fonction. Cette séparation réduit les chances que les variables à l'intérieur de la fonction soient affectées par les variables du programme principal.
Astuce :Vous pouvez utiliser le même nom pour une variable dans différentes fonctions, car les variables locales ne peuvent être identifiées que par la fonction qui les a déclarées.
Dans certains cas, vous devez importer une variable du programme principal dans une fonction, et vice versa. Dans ce cas, vous pouvez utiliser le mot-clé global devant la variable dans la fonction. Ce mot-clé convertit la variable en variable globale, ce qui la rend visible ou accessible à la fois à l'intérieur et à l'extérieur de la fonction, comme dans l'exemple suivant :
<?php $greet = "Hello World!"; //Définir une fonction function test(){ global $greet; echo $greet; } test(); // Sortie : Hello World! echo $greet; // Sortie : Hello World! //Affecter une nouvelle valeur à une variable $greet = "Au revoir"; test(); // Sortie : Au revoir echo $greet; // Sortie : Au revoir ?>Test and see‹/›
Vous allezClasses et objets PHPPour plus d'informations sur la visibilité et le contrôle d'accès, voir le chapitre suivant.
Une fonction récursive est une fonction qui appelle elle-même jusqu'à ce qu'elle satisfasse une condition. Les fonctions récursives sont généralement utilisées pour résoudre des calculs mathématiques complexes ou pour traiter des structures profondément imbriquées, par exemple, pour imprimer tous les éléments d'un tableau profondément imbriqué.
The following example demonstrates how recursive functions work.
<?php //Define recursive function function printValues($arr) { global $count; global $items; //Check if $arr is an array if(!is_array($arr)){ die("ERROR: Input is not an array"); } /* Traverse the array, if the value itself is an array, then make a recursive call The function adds the found values to the output items array and increment the counter for each value found1 */ foreach($arr as $a){ if(is_array($a)){ printValues($a); } else { $items[] = $a; $count++; } } //Return the total count and values in the array return array('total' => $count, 'values' => $items); } //Define nested arrays $species = array( "birds" => array( "Eagle" "Parrot" "Swan" ), "mammals" => array( "Human" "cat" => array( "Lion" "Tiger" "Jaguar" ), "Elephant" "Monkey" ), "reptiles" => array( "snake" => array( "Cobra" => array( "King Cobra" "Egyptian cobra" ), "Viper" "Anaconda" ), "Crocodile", "Dinosaur" => array( "T"-rex", "Alamosaurus" ) ) ); //Calculate and print the values in the nested array $result = printValues($species); echo $result['total'] . ' value(s) found: '; echo implode(', ', $result['values']); ?>Test and see‹/›
Note:Attention, when creating recursive functions, be careful because if the code is written incorrectly, it may lead to an infinite loop in function calls.