Yaponchick
Новичок
Здравствуйте 
И так суть моей проблемы, как определить при создании функции тип входящих параметров?
Много лет задаюсь этим вопросом...
Пример:
Ситуация №1: Пользователь дал мне список названий "товаров", т.е. array("Вазелин". "Фейри", "Мыло на посошок");
Ситуация №2: Пользователь дал мне ID товаров, array(45, 35, 44);
Ситуация №3: Пользователь дал смесь ID & Names, содержание массива, и так ясно будет )
Если сделать унифицированную функцию, которая ищет как по названиям так и по ID, то при возвращение массива, возникает вопрос ключей. Если ключ будет равен элементу входящего массива, то это самый убогий вариант. Но зато просто проверить существование, e.g.
Если ключ будет равен ID товара, то для проверки "существования" товара придётся перебирать весь массив, e.g.
А если ограничить входного массива до IDs, то понадобится 2ая функция, в случае, если от пользователя пришли названия -.-
Так что, может где-то написано, как правильно создавать функции?

И так суть моей проблемы, как определить при создании функции тип входящих параметров?
Много лет задаюсь этим вопросом...
Пример:
PHP:
function get_items($items) {
$ret = array();
$ret = $this->db->fetchAll("... very big sql query ...");
return $ret;
}
Ситуация №2: Пользователь дал мне ID товаров, array(45, 35, 44);
Ситуация №3: Пользователь дал смесь ID & Names, содержание массива, и так ясно будет )
Если сделать унифицированную функцию, которая ищет как по названиям так и по ID, то при возвращение массива, возникает вопрос ключей. Если ключ будет равен элементу входящего массива, то это самый убогий вариант. Но зато просто проверить существование, e.g.
PHP:
isset(get_items(["a", "b", 1, 45])["b"]);
Если ключ будет равен ID товара, то для проверки "существования" товара придётся перебирать весь массив, e.g.
PHP:
foreach (get_items(["a", "b", 1, 45]) as $item) { if ($item["name"] == "b") { print "got it"; } }
А если ограничить входного массива до IDs, то понадобится 2ая функция, в случае, если от пользователя пришли названия -.-
Так что, может где-то написано, как правильно создавать функции?