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

Fonction d'apprentissage PHP

不言
Libérer: 2023-03-23 11:54:01
original
1074 Les gens l'ont consulté

Cet article présente les connaissances sur les fonctions dans l'apprentissage PHP. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Définition de la fonction

  1. Une définition valide. le nom de la fonction commence par une lettre ou un trait de soulignement, suivi de lettres, de chiffres ou de traits de soulignement ;

  2. Les noms de fonctions peuvent être insensibles à la taille (en fait, les noms de fonctions, les noms de méthodes et les noms de classes de PHP sont non sensible à la casse);

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

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

<?php
Test(); # function test.

function test()
{
    echo 'function test.';
}
Copier après la connexion

Paramètres de la fonction

1. Transfert de valeur

La modification de la valeur du paramètre à l'intérieur de la fonction n'affectera pas la fonction. valeur du paramètre externe :

<?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 un nombre variable de. paramètres. Les paramètres répertoriés lors de la définition d'une fonction ne sont en réalité 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 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 le paramètre liste 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 supérieur, la syntaxe ... implémente un nombre variable de listes de paramètres :

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

Fonction variable

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 = 'foo';
$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.

Fonction anonyme

En PHP, une fonction anonyme, également appelée fonction de fermeture, permet 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('World'); # 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 = 'hello';

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

Si vous devez retarder la liaison des variables dans use, vous devez utiliser une référence, sinon une copie sera effectuée lors de la définition Copiez-le dans use :

<?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

Recommandations associées :

Array pour l'apprentissage PHP

WampSever pour l'apprentissage PHP


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:
source:php.cn
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