$class_methods = get_class_methods('Bar');
Из документации PHP
Это не приведет к созданию экземпляра класса и позволит вам получить массив всех методов классов.
Я не совсем уверен, что это не вернет методы родительского класса, но get_class_methods
будет работать для необученных классов.Если это так, вы можете использовать ответ Аликса, чтобы удалить метод родителя из массива.Или Лукмана использовать обратный инжиниринг внутреннего кода PHP для получения методов.
Кстати, если вы введете new Bar()
, он создаст новый экземпляр Foo, как Barрасширяет Фу.Единственный способ, которым вы не можете создать экземпляр Foo, это ссылаться на него статически.Следовательно, ваш запрос:
I want a function which will, given the parameter new Bar() return:
Не имеет никакого возможного решения.Если вы передадите new Bar()
в качестве аргумента, он создаст экземпляр класса.