func_get_arg

(PHP 4, PHP 5)

func_get_arg — Возвращает элемент из списка аргументов

Описание

mixed func_get_arg ( int $arg_num )

Возвращает arg_num -ый аргумент из списка аргументов пользовательской функции. Нумерация аргументов функции начинается с нуля. func_get_arg() генерирует предупреждение при вызове вне определения функции.

Если arg_num больше количества переданных аргументов, будет сгенерировано предупреждение и func_get_arg() вернет FALSE.

<?php
function foo() 
{
     
$numargs func_num_args();
     echo 
"Number of arguments: $numargs<br />\n";
     if (
$numargs >= 2) {
     echo 
"Second argument is: " func_get_arg(1) . "<br />\n";
     }


foo (123);
?>

func_get_arg() может быть использована совместно с func_num_args() и func_get_args() для создания функций с переменным количеством аргументов.

Коментарии

func_get_arg() returns a *copy* of the argument, to my knowledge there is no way to retrieve references to a variable number of arguments.

I have a module system in my game at http://lotgd.net where I'd like to be able to pass a variable number of arguments to functions in a module, and pass them by reference if the module asks for it by reference, but you can't accept optional parameters as references, nor can you retrieve the reference on a variable number of arguments.  Looks like my modules will have to do with out the ability to accept parameters to their functions by reference.
2004-03-12 11:45:43
http://php5.kiev.ua/manual/ru/function.func-get-arg.html
I actually think that there is need for such "do absolutely everything" functions. I use them mostly as tools for rapid prototyping.
And there is a method with which you may be able to pass several strings to a function: ereg();
Another use for such functions is to create little code snippets for other people out there. They won't have to edit the function any longer if they do not use a parameter. They just don't name it when calling the function.
This results in allrounder functions that are very robust in their use.Normally you just have a little code snippet (e.g. ip-blocking snippets). Through this type of programming you have whole functions.
2004-06-03 21:16:39
http://php5.kiev.ua/manual/ru/function.func-get-arg.html
func_get_arg() does not appear to be allowed to be used as a function argument itself within class constructors in PHP 5.0.2 (wonk-ay!!!):

<?php

class ABC
{
    function 
__construct()
    {
        foreach (
func_get_args() as $name => $value)
        {
    echo <<<EOT
    <br/>
   
$name : $value <br/>
    <br/>

EOT;
        }
    }
}

class 
DEF extends ABC
{
    function 
__construct()
    {
       
parent::__construct(func_get_arg(0),
                                   
func_get_arg(1),
                                   
func_get_arg(2));
    }
}

$def = new DEF(123123"asdfasdf""blahblahblah");

?>

The above script generates:

Fatal error: func_get_arg(): Can't be used as a function parameter in c:\Inetpub\wwwroot\phpwasrc\chapter10\xxx.php on line 23

There are, however, no problems when passing these as parameters to regular functions.
2004-12-07 16:56:01
http://php5.kiev.ua/manual/ru/function.func-get-arg.html
This functions seems so powerful... just when i saw it i thought about writing a fast average of n numbers function so here it is, it is very simple... example usage included.

<?php

//Calculate the average of the numbers given

function avg(){
   
$sum 0;
    for(
$i 0$i func_num_args(); $i++){
       
$sum += func_get_arg($i);
    }
   
$avg $sum func_num_args();
    return 
$avg;
}

echo 
sprintf("%.2f",avg(2,1,2,1,3,4,5,1,3,6));
?>
2009-07-06 09:34:51
http://php5.kiev.ua/manual/ru/function.func-get-arg.html
This function may work differently from php5 to php7, in the latter it seems to reference the variable, while in php5 it returns the original argument.
I have confirmed with the versions below, but this will require further confirmation as to whether this is a 5 versus 7 issue.

function test( $test ){

    $test = '123';

    echo func_get_arg(0);

}

test( '321' );

//in php 5.5.9, this script will write '321'
//in php 7.0.33, this script will write '123'
2020-03-24 01:30:56
http://php5.kiev.ua/manual/ru/function.func-get-arg.html

    Поддержать сайт на родительском проекте КГБ