#php #function #codeigniter #arguments
#php #функция #codeigniter #аргументы
Вопрос:
У меня есть функция в CodeIgniter, которая заполняет список дней. Я вызвал его init_days(). Я вызываю эту функцию с помощью ajax и вывожу возвращаемые значения в div с помощью jQuery. Эта функция не принимает никаких аргументов; Я загружаю значения по умолчанию из модели и работаю оттуда. (Эта функция загружает пару дней в список, начиная с текущего дня (today). Я загружаю текущий день / месяц / год / .. из моей модели).
Однако, поскольку этим списком придется манипулировать (чтобы показать, например, следующий месяц). В этом случае, я полагаю, мне пришлось бы передавать аргументы моей функции.
Теперь я действительно не хочу иметь одну функцию для инициализации списка (init_days()), а затем другую функцию, давайте назовем ее populate_days() , которая принимает аргументы, но по сути делает то же самое, только с изменяемыми значениями.
Есть ли способ проверить, передаю ли я значения в свою функцию или нет? Таким образом, я мог бы просто сохранить свою функцию такой, какая она есть, и добавить проверку аргументов. Или, возможно, я делаю это сложнее, чем есть на самом деле (как обычно : ( ) и есть более простой способ? Большое спасибо!
Комментарии:
1. Как всегда, просмотр некоторых может помочь, не могли бы вы потратить время на публикацию этого? Вы знакомы со своим кодом, а мы нет. Возможно, вы захотите взглянуть на настройку аргументов по умолчанию для вашей функции, но трудно точно сказать, что вам нужно.
2. @Madmartigan, извините. Я должен был добавить это. Ответ JohnP решил мой вопрос, так что спасибо.
Ответ №1:
Если у вас есть установленное количество аргументов, вы могли бы просто присвоить им значения по умолчанию
function init_days($start = '', $end = '') {
if (!empty($start) amp;amp; !empty($end)) {
//got both vars. do something with it here
}
}
Вы также могли бы использовать func_get_arg()
, если работаете с переменным количеством параметров. Итак, ваш метод будет работать с аргументами или без них
Комментарии:
1. Спасибо. У меня есть заданное количество аргументов, поэтому предоставленный вами код — это именно то, что я искал. Следовало подумать о том, чтобы сделать это таким образом, ха-ха. Спасибо вам, сэр!