Maison > développement back-end > tutoriel php > Fonction de résumé d'apprentissage PHP

Fonction de résumé d'apprentissage PHP

藏色散人
Libérer: 2023-04-08 06:56:01
avant
2904 Les gens l'ont consulté

Définition des fonctions

Les noms de fonctions valides commencent par des lettres ou des traits de soulignement, suivis de lettres, de chiffres ou de traits de soulignement

Les noms de fonctions peuvent être insensibles à la taille (en fait, Les noms de fonctions PHP, les noms de méthodes et les noms de classes ne sont pas sensibles à la casse) ;

La fonction n'a pas besoin d'être définie avant l'appel, sauf si une fonction est définie de manière conditionnelle

PHP ne prend pas en charge ; surcharge de fonctions, et il n'est pas possible de dédéfinir ou de redéfinir les fonctions déclarées.

<?php
Test(); # function test.
function test()
{
    echo &#39;function test.&#39;;
}
Copier après la connexion

Paramètres de la fonction

1. Passage de valeur

modifie la valeur du paramètre à l'intérieur de la fonction, et cela n'affectera pas la valeur du paramètre en dehors de la fonction :

<?php
$i = 1;
add($i);
echo $i; # 1
function add($test)
{
    $test++;
}
Copier après la connexion

2. Le passage par référence

maintient la valeur du paramètre cohérente à l'intérieur et à l'extérieur de la fonction. Pour passer par référence, vous pouvez ajouter le symbole & devant le paramètre dans la définition de la fonction :

<?php
$i = 1;
add($i);
echo $i; # 2
function add(&$test)
{
    $test++;
}
Copier après la connexion

3 Nombre variable de paramètres

PHP supporte une variable. nombre de paramètres. Les paramètres répertoriés lors de la définition d'une fonction ne sont en fait que les paramètres minimaux ; plusieurs paramètres sont autorisés lors de l'appel, mais les paramètres supplémentaires seront ignorés :

function add($a, $b) 
{
    return $a + $b;
}
echo add(1,2,5); # 3
Copier après la connexion

Dans PHP 5.5 et versions antérieures, si Si vous devez gérer un nombre incertain de paramètres, vous pouvez utiliser les fonctions suivantes :

func_num_args() — Renvoie le nombre de paramètres passés à la fonction

func_get_arg() — Renvoie les paramètres spécifiés

func_get_args() — Renvoie la liste d'arguments sous forme de tableau

<?php
function func() 
{
    $argc = func_num_args();
    $argv = func_get_args();
    switch ($argc) {
       case 0:
           echo "没有参数。<br />";
           break;
       case 1:
           echo "只有1个参数。它是:" . func_get_arg(0) . "。<br />";
           break;
       case 2:
           echo "有2个参数。它们是:" . func_get_arg(0) . "," . func_get_arg(1) . "。<br />";
           break;
       default:
           echo "超过2个参数。它们是:";
           print_r($argv);
           break;
    }
}
func();          # 没有参数。
func(1);         # 只有1个参数。它是:1。
func(1,2);       # 有2个参数。它们是:1,2。
func(1,2,3,4,5); # 超过2个参数。它们是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Copier après la connexion

En PHP 5.6 et versions ultérieures, un nombre variable de listes d'arguments sont implémentées par... la syntaxe :

function sum(...$numbers) 
{
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4); # 10
Copier après la connexion

Variable Fonctions

PHP prend en charge le concept de fonctions variadiques - s'il y a des parenthèses après un nom de variable, PHP recherchera une fonction portant le même nom que la valeur de la variable et essaiera de l'exécuter :

<?php
function foo() 
{
    echo "In foo()";
}
$func = &#39;foo&#39;;
$func(); # In foo()
Copier après la connexion

Remarque : les fonctions variables ne prennent pas en charge les structures de langage en PHP, telles que echo, print, etc.

Fonctions anonymes

En PHP, les fonctions anonymes, également appelées fonctions de fermeture, permettent la création temporaire d'une fonction sans nom spécifié. Paramètres couramment utilisés dans les fonctions de rappel :

<?php
print_r(array_map(function($value) {
    return $value * 2;
}, range(1, 5)));
# Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Copier après la connexion

Les fonctions de fermeture peuvent également être utilisées comme valeur de variables :

$greet = function($name) {
    printf("Hello %s\r\n", $name);
};
$greet(&#39;World&#39;); # Hello World
Copier après la connexion

Les fermetures peuvent hériter des variables de la portée parent. Toutes ces variables doivent être transmises à l'aide de la construction du langage use :

<?php
$message = &#39;hello&#39;;
$example = function () use ($message) {
    echo $message;
};
$example(); # hello
Copier après la connexion

Si vous devez retarder la liaison des variables utilisées, vous devez utiliser une référence, sinon une copie sera créée et utilisée lorsqu'elle sera utilisée. est défini :

<?php
$result = 0;
 
$one = function() use ($result) { 
    var_dump($result); 
};
 
$two = function() use (&$result) { 
    var_dump($result); 
};
 
$result++;
 
$one();  # int(0)
$two();  # int(1)
Copier après la connexion

Appel de fonction dynamique

En PHP, en plus d'appeler des fonctions directement, vous pouvez également appeler des fonctions indirectement via call_user_func() ou call_user_func_array() fonction :

<?php
function named_func($param1, $param2)
{
    echo "这是一个命名函数。参数是:$param1 和 $param2 。<br />";
}
call_user_func("named_func", "PARAM1", "PARAM2");
call_user_func_array("named_func", array("PARAM1", "PARAM2"));
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal