Приятно иметь универсальную функцию, которая принимает аргументы разного типа.
приятно девку за сиськи щупать, а озвученное выше - лишь прямой путь к говнокоду, непрозрачной архитектуре и бесславной гибели проекта.
Вопрос не имеет смысла, ибо автор не до конца рассказал о своей проблеме, зачем ему это надо.
Примеры кода - это вообще бред чистой воды. Нет никакого смысла делать кучу методов с НЕЯВНЫМ названием или перегружать их, что бы программист и редактор вставали в ступор при виде этого кошмара.
Тут достаточно создать методы
findByEmail(string $email);
findByID($id);
и все станет на свои места.
и еще.
методы типа findByparams(), findOne() и тп - это ORM.
Это прослойка между низкоуровневым механизмом получения данных из СУБД и слоем высокого уровня
Так вот слой высокого уровня НЕ должен быть максимально гибок, не надо там иметь чудо-методы, которые сеют и жнут. Там должны быть методы findByEmail, findByName, getListByAge и т.п.
Абстрактно можно так представить данную архитектуру слоеного пирога:
User class // объект для "тупых" пользователей, что бы в ноги не выстреливали
ORM // трансляция в объекты
mysqli/pdo user cover // возможно, какая-то более удобная обертка над драйверами mysqli/pdo
mysqli/pdo // родные библиотеки PHP для СУБД
СУБД // база данных
файловая система и прочий АД