Блог о SEO оптимизация и поисковое продвижение
12 Дек
В статьях цикла «PHP-кодинг» я буду собирать такие приёмы PHP программирования (мне больше нравится слово «кодинг»), для использования которых мне пришлось лезть в справочник или даже в Интернет. Обычно это что-то редкоиспользуемое или нетривиальное. Сегодня это определение пользовательской функции с произвольным числом аргументов.
Понадобилась мне пользовательская функция, которая бы принимала заранее неизвестное число аргументов. Для этого можно в определении функции зарезервировать определённое число аргументов (пример функции, принимающей до 3-х аргументов):
function my (arg1=FALSE, arg2=FALSE, arg3=FALSE) { ... }
Здесь при обращении к функции мы можем передать ей 1, 2 или 3 аргумента, а можем не передавать их вовсе (если аргумент не передан, в теле функции он будет иметь значение по умолчанию — FALSE). В самом теле функции будем использовать только те аргументы, значение которых не равно FALSE.
Если вы используете PHP версии ниже 4, то такой вот велосипед вам придётся изобретать. Если же ваш PHP 4 версии или выше, то можно не мудрствовать лукаво, а пользоваться предназначенными для этого средствами языка. Объявляем пользовательскую функцию без аргументов, а в теле пользуемся функциями PHP для определения числа аргументов, получения аргументов:
function my () { # Узнаём число переданных аргументов $numargs = func_num_args(); # Получаем аргумент по номеру (нумерация с нуля) $arg_1 = func_get_arg (1); # Получаем все аргументы одним массивом $all_args = func_get_args(); }
Отписывайтесь, пожалуйста, в комментариях, кто применял данный способ задания функции, какие задачи позволяет реализовать этот метод.
При поддержке dancecommunity.ru
Запись опубликована 12 декабря 2009 года. Не так давно в рубрике «Web-кодинг» были опубликованы следующие посты:
RSS подписка (как это?) поможет вам не пропустить ничего интересного на этом блоге.
На «PHP-кодинг: функция с переменным числом аргументов» получен 1 отзыв
Нормально, только автор кажется забыл знак $ добавить в название переменных, а так все вроде робит.
Ваше SEO-мнение
Я прошу высказать своё мнение, а не оставить ссылку на раскручиваемый сайт. В любом случае, ссылки в комментариях у меня закрыты от индексации, если интересует качественный обмен ссылками -обращайтесь