CodeIgniter — Функции с аргументами и без них

#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() , если работаете с переменным количеством параметров. Итак, ваш метод будет работать с аргументами или без них

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

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

Комментарии:

1. Спасибо. У меня есть заданное количество аргументов, поэтому предоставленный вами код — это именно то, что я искал. Следовало подумать о том, чтобы сделать это таким образом, ха-ха. Спасибо вам, сэр!