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

Fonction de résumé d'apprentissage PHP

藏色散人
藏色散人avant
2019-12-30 13:45:522728parcourir

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;;
}

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++;
}

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++;
}

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

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 )

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

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()

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 )

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

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

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)

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"));

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer