Наряду с динамическими переменными РНР также может выполнять функции динамически. В частности, это удобно при контроле допустимости данных, введенных в форму, и, как вы увидите далее в настоящей книге, это делается довольно просто.
Чтобы выполнить функцию, имя которой вы не знаете до времени выполнения, просто добавьте список параметров в конец любой переменной. Рассмотрим следующий фрагмент кода:
function test () ( echo "Добро пожаловать в PHP! "; } $myfunc = " t e s t " ; $myfunc(); ?>
Когда этот код выполняется, как и можно ожидать, результатом, переданным клиенту, будет "Добро пожаловать в РНР!".
Несмотря на то что в данном случае функция t e s t () не принимает параметров и не возвращает значения, это также возможно при динамическом вызове функций.
Говоря о параметрах функций, давайте взглянем на концепцию динамических параметров. До сих пор были показаны только функции с предопределенным числом параметров. Однако РНР также поддерживает возможность динамической передачи параметров, без предварительного определения их до момента запуска функции.
Чтобы увидеть, как это делается, рассмотрим две PHP-функции: func_num_args () и f unc_get_args (). Обе функции не принимают параметров и могут вызываться только изнутри PHP-функций. Как указывает имя, f unc_num_args () возвращает количество аргументов, переданных текущей функции. В дополнение к этому вторая функция —func_get_args () — предназначена для возврата индексированного массива, содержащего значения всех переданных параметров. Ниже представлен пример применения обеих функций в пользовательской функции, которая может принимать неопределенное число параметров/
|