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
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 ;
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);
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 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 &#39;function test.&#39;; }
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++; }
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++; }
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
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 )
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
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 queecho
,
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 )
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 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)
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"));
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!