CodeIgniter - Функции с аргументами и без них - PullRequest
1 голос
/ 17 апреля 2011

У меня есть функция в CodeIgniter, которая заполняет список дней.Я назвал это init_days ().Я вызываю эту функцию, используя ajax, и выводю возвращаемые значения в div, используя jQuery.Эта функция не принимает никаких аргументов;Я загружаю значения по умолчанию из модели и работаю оттуда.(Эта функция загружает пару дней в список, начиная с текущего дня (сегодня). Я загружаю текущий день / месяц / год / .. из моей модели).

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

Теперь я не хочу иметь одну функцию для инициации списка (init_days ()), а затем другую функцию, давайте назовем ее populate_days (), которая принимает аргументы, но, по сути, делает то же самое,просто с манипулируемыми значениями.

Есть ли способ проверить, передаю ли я значения своей функции или нет?Таким образом, я мог бы просто сохранить свою функцию такой, какая она есть, и добавить проверку на аргументы.Или, может быть, я делаю это сложнее, чем есть (как обычно :(), и есть более простой способ? Большое спасибо!

1 Ответ

2 голосов
/ 17 апреля 2011

Если у вас есть заданное количество аргументов, вы можете просто дать им значения по умолчанию

function init_days($start = '', $end = '') {
   if (!empty($start) && !empty($end)) {  
     //got both vars. do something with it here
   }
}

Вы также можете использовать func_get_arg(), если вы работаете с переменным числом параметров. Таким образом, ваш метод будет работать с аргументами или без них

http://php.net/manual/en/function.func-get-arg.php

http://www.php.net/manual/en/function.func-num-args.php

...