Возвращает количество аргументов, переданных функции


(PHP 4, PHP 5)

func_num_argsВозвращает количество аргументов, переданных функции

Описание

int func_num_args ( void )

Возвращает количество аргументов, переданных функции.

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

Возвращаемые значения

Возвращает количество аргументов, переданных текущей пользовательской функции.

Список изменений

Версия Описание
5.3.0 Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение -1.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #1 Пример использования func_num_args()

<?php
function foo()
{
    
$numargs func_num_args();
    echo 
"Количество аргументов: $numargs\n";
}

foo(123);
?>

Результат выполнения данного примера:

 Количество аргументов: 3 

Пример #2 Использование func_num_args() до и после PHP 5.3

test.php
<?php
function foo() {
    include 
'./fna.php';
}

foo('Первый аргумент''Второй аргумент');
?>

fna.php
<?php

$num_args 
func_num_args();
var_export($num_args);

?>

Вывод до PHP 5.3:

 2 

Вывод в PHP 5.3 и выше будет содержать что-то типа следующего:

 Warning: func_num_args():  Called from the global scope - no function context in /home/torben/Desktop/code/ml/fna.php on line 3 -1 

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.