php func get args

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

Описание

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

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

Список параметров

Номер аргумента. Аргументы функции считаются с нуля.

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

Возвращает указанный аргумент, или FALSE в случае ошибки.

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

Ошибки

Генерирует предупреждение при вызове вне определения функции, или если arg_num больше реально переданного количества аргументов.

Примеры

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

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

test.php
function foo () <
include ‘./fga.inc’ ;
>

Вывод в PHP 5.3 и выше:

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_arg()

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

Примечания

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

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

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Источник

func_get_args — Возвращает массив, содержащий аргументы функции

Описание

Возвращает массив, содержащий аргументы функции.

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

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

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

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

Ошибки

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

Примеры

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

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

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

test.php
function foo () <
include ‘./fga.inc’ ;
>

Вывод в PHP 5.3 и выше:

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_args()

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

Примечания

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

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

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Источник

func_get_arg

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

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

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

Список параметров

Номер аргумента. Аргументы функции считаются с нуля.

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

Возвращает указанный аргумент или false в случае возникновения ошибки.

Ошибки

Генерирует предупреждение при вызове вне определения функции, или если position больше реально переданного количества аргументов.

Примеры

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

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

Пример #2 Пример передачи аргументов по ссылке и по значению с func_get_arg()

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

Примечания

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

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

User Contributed Notes 5 notes

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.

//Calculate the average of the numbers given

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.

//in php 5.5.9, this script will write ‘321’
//in php 7.0.33, this script will write ‘123’

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.

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. ):

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

?>

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.

Источник

PHP: func_get_args performance?

I’m about to use func_get_args for reading additional arguments of a function call.

How does this affect the performance? Should I rather use an array for passing additional arguments instead of reading them with the function above?

5 Answers 5

Unless you are using it in mass quantities, no single function will make that much difference. You could always check how long it takes to call by using microtime() before and after the call, but I don’t think you’ll find anything interesting.

Go ahead and use it if you’d like.

I’d be more worried about making sure other programmers understand how the function works and knowing that they can pass any number of arguments to the function.

Should I rather use an array for passing additional arguments instead of reading them with the function above?

Yes, but more for a reason of clarity and code correctness, not so much performance. Example:

Also, when you see foo($a) you know immediately what to pass.

The only reason to use func_get_args is when you want a function with an arbitrary number of arguments (printf-like).

There are only those 2 possibilities, as far as I know. func_get_args is from my pov the more clean way. I use this snippet with a parser (func_parameter) heavily to get an extra flexibility. There is just a small performance reduction. Probably not noteable.

It is like the question for performance between double-quote and and single-quote. If you start thinking about it, you should rethink about PHP is the right decision in case of performance.

Источник

func_get_arg

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

Описание

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

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

Список параметров

Номер аргумента. Аргументы функции считаются с нуля.

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

Возвращает указанный аргумент или false в случае ошибки.

Ошибки

Генерирует предупреждение при вызове вне определения функции, или если arg_num больше реально переданного количества аргументов.

Примеры

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

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

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

test.php
function foo () <
include ‘./fga.inc’ ;
>

Вывод в PHP 5.3 и выше:

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_arg()

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

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

Примечания

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

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

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *