Это называется рефлексия. Пример:
$class = new \ReflectionClass('Название класса'); // Создаем объект для рефлексии класса
$method = $class->getMethod('Имя метода'); // Получаем метод по имени
$params = $method->getParameters(); // Получаем массив с параметрами
$paramName = $params[0]->getName(); // Берем первый элемент массива, он имеет тип ReflectionParameter, и получаем его имя.
Можно сразу создать объект для рефлексии метода "напрямую":
$method = new \ReflectionMethod('Класс', 'Имя метода');
// Далее, аналогично
С помощью рефлексии можно не только получать имена параметров, но и их типы, значения по умолчанию. Можно получать даже док-блоки для методов/свойств и тд. С помощью рефлексии, например, работает doctrine orm. Он использует аннотации (как один из вариантов конфигурации) для описания сущностей.