Пример 5.6. Функция для проверки типа данных, ее аргументов (html, txt)
Результатом работы будет следующее.
Данные не удовлетворяют условиям Проверка прошла успешно
Функция func_get_args() возвращает массив, состоящий из списка аргументов, переданных функции. Каждый элемент массива соответствует аргументу, переданному функции. Если функция используется вне определения пользовательской функции, то генерируется предупреждение.
Перепишем предыдущий пример, используя эту функцию. Будем проверять, является ли целым числом каждый четный аргумент, передаваемый функции:
<? function DataCheck(){ $check =true; $n = func_num_args(); // число аргументов, // переданных в функцию
$args = func_get_args(); // массив аргументов функции for ($i=0;$i<$n;$i++){ $v = $args[$i]; if ($i % 2 == 0){ if (!is_int($v)) $check = false; // проверяем, // является ли четный аргумент целым } } return $check; } if (DataCheck("text", 324)) echo "Проверка прошла успешно<br>"; else echo "Данные не удовлетворяют условиям<br>"; ?>
Как видим, комбинации функций func_num_args(), func_get_arg() и func_get_args() используется для того, чтобы функции могли иметь переменный список аргументов. Эти функции были добавлены только в PHP 4. В PHP3 для того, чтобы добиться подобного эффекта, можно использовать в качестве аргумента функции массив. Например, вот так можно написать скрипт, проверяющий, является ли каждый нечетный параметр функции целым числом:
<? function DataCheck($params){ $check =true; $n = count($params); // число аргументов, // переданных в функцию
for ($i=0;$i<$n;$i++){ $v = $params[$i]; if ($i % 2 !== 0){ // проверяем, является ли нечетный // аргумент целым if (!is_int($v)) $check = false; } } return $check; } if (DataCheck("text", 324)) echo "Проверка прошла успешно<br>"; else echo "Данные не удовлетворяют условиям<br>"; ?>