(PHP 4, PHP 5)
func_get_arg — Retourne un élément de la liste des arguments
Récupère un élément de la liste des arguments d'une fonction utilisateur.
func_get_arg() peut être utilisé conjointement à func_num_args() et func_get_args() pour permettre aux fonctions utilisateurs d'accepter un nombre variable d'arguments.
arg_num
La position de l'argument. Les arguments de la fonction sont comptés en commençant à partir de 0.
Retourne l'argument spécifié, ou FALSE
si une erreur survient.
Version | Description |
---|---|
5.3.0 | Cette fonction peut maintenant être utilisée dans des listes de paramètres. |
5.3.0 |
Si cette fonction est appelée depuis le scope le plus éloigné d'un
fichier qui a été inclus via
include ou
require
depuis l'intérieur d'une fonction du fichier appelant, elle génère une
alerte et retourne FALSE .
|
Générera une alerte si elle est appelée hors d'une fonction utilisateur, ou si
arg_num
est plus grand que le nombre d'arguments passés.
Exemple #1 Exemple avec func_get_arg()
<?php
function foo()
{
$numargs = func_num_args();
echo "Nombre d'arguments : $numargs<br />\n";
if ($numargs >= 2) {
echo "Le second argument est : " . func_get_arg(1) . "<br />\n";
}
}
foo (1, 2, 3);
?>
Exemple #2 Exemple avec func_get_arg() avant et après PHP 5.3
test.php
<?php
function foo() {
include './fga.inc';
}
foo('First arg', 'Second arg');
?>
fga.inc
<?php
$arg = func_get_arg(1);
var_export($arg);
?>
Affiche, avant PHP 5.3 :
'Second arg'
Affiche, en PHP 5.3 et suivants :
Warning: func_get_arg(): Called from the global scope - no function context in /home/torben/Desktop/code/ml/fga.inc on line 3 false
Exemple #3 Exemple func_get_arg() avec des arguments par référence et par valeur
<?php
function byVal($arg) {
echo 'Tel que passé : ', var_export(func_get_arg(0)), PHP_EOL;
$arg = 'baz';
echo 'Après changement : ', var_export(func_get_arg(0)), PHP_EOL;
}
function byRef(&$arg) {
echo 'Tel que passé : ', var_export(func_get_arg(0)), PHP_EOL;
$arg = 'baz';
echo 'Après changement : ', var_export(func_get_arg(0)), PHP_EOL;
}
$arg = 'bar';
byVal($arg);
byRef($arg);
?>
L'exemple ci-dessus va afficher :
Note:
Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.
Note:
Si les arguments sont passés par référence, toutes leurs modifications seront reflétées dans les valeurs retournées par cette fonction.
Note: Cette fonction retourne uniquement une copie des arguments passés, et ne compte pas en tant qu'arguments par défaut (non passés).