Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 10
1

Как узнать имена protected методов класса, имея лишь его строковое название?

03.08.2013, 02:06. Просмотров 929. Ответов 3
Метки нет (Все метки)

Приветствую. Такой вопрос возник: имеем на входе объект $object какого-то неизвестного нам класса, требуется получить имена всех его функций.

get_class_methods (get_class($object)) - конечно же выдает лишь публичные функции, но не protected.

Для этого надо по идее унаследоваться по

Код
class newClass extends имя_класса_у_object {}
Но это имя "имя_класса_у_object" нам заранее не известно. Как тогда решить задачу?

Добавлено через 1 час 41 минуту
вопрос снят. решил
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2013, 02:06
Ответы с готовыми решениями:

Можно ли узнать ip пользователя, зная лишь название электронной почты
Добрый день,можно ли узнать ip пользователя, зная лишь название электронной почты???Спасибо

Как обращаться к переменным внутри класса из его методов?
Только начинаю осваивать ооп и наткнулся на проблему, ответ на которую не смог найти, гугля...

Название методов класса названиями существующих функций
Доброго времени суток. Подскажите, можно ли методы называть именами существующих функций. ...

Узнать HWND главного окна процесса имея его имя?
Запускаем калькулятор Windows. Имя этого процесса (полученное с использованием PROCESSENTRY,...

3
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16816 / 6694 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
03.08.2013, 11:32 2
Лучший ответ Сообщение было отмечено Kerry_Jr как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
    public function foo(){}
    protected function bar(){}
    private function lol(){}    
}
echo '<pre>';
ReflectionObject::export(new A());
 
echo '<hr>';
 
//или так
$reflectionObj = new ReflectionObject(new A());
var_dump($reflectionObj->getMethods());
Добавлено через 2 минуты
или через ReflectionClass можно
2
DEA7H
03.08.2013, 12:56
  #3

Не по теме:

Хммм...

Цитата Сообщение от KOPOJI Посмотреть сообщение
ReflectionObject
Цитата Сообщение от KOPOJI Посмотреть сообщение
ReflectionClass
Как-то и сам до такого еще не дочитался.
Спасибо.:good:

0
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 10
03.08.2013, 21:47  [ТС] 4
Цитата Сообщение от KOPOJI Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
    public function foo(){}
    protected function bar(){}
    private function lol(){}    
}
echo '<pre>';
ReflectionObject::export(new A());
 
echo '<hr>';
 
//или так
$reflectionObj = new ReflectionObject(new A());
var_dump($reflectionObj->getMethods());
Добавлено через 2 минуты
или через ReflectionClass можно
Спасибо, Именно так и решил, почитав ман по рефлексии)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2013, 21:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужно узнать имя и путь исполняемого файла, имея handle его окна
Нужно узнать имя и путь исполняемого файла, имея handle его окна. Когда используешь handle...

Можно ли имея доступ к SQL Server и зная название базы узнать весь список таблиц и поля этих таблиц в VB.NET?
можно ли имея доступ к SQL Server и зная название базы узнать весь список таблиц и поля этих таблиц...

Как создать экземпляр класса внутри другого, явно не указывая его название
Как создать екземпляр класса внутри класса явно не указывая его название и не присваивая в...

Как сохранить лишь название изображения?
Добрый день! помогите пожалуйста Работаю с Delphi7 есть БД, в которой хранятся названия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.